home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / COMMADIO / RBBS1.LZH / CONFIG.BAS < prev    next >
BASIC Source File  |  1986-03-15  |  78KB  |  1,403 lines

  1. 10000 REM $linesize: 132 $title: 'CONFIG V1.95, Copyright 1983,84,85,86 by D. Thomas Mack'; ' WARNING !!! DO NOT CHANGE, BYPASS OR REMOVE LINE 10000-10230
  2. 10010 ' CONFIG.BAS (RBBS-PC ver. CPC14.1A)
  3. 10030 'by D. Thomas Mack
  4. 10040 '   The Second Ring
  5. 10050 '   10210 Oxfordshire Road
  6. 10060 '   Great Falls, Virginia 22066
  7. 10070 '
  8. 10080 ' *******************************NOTICE*************************************
  9. 10090 ' *  A limited license is granted to all users of this program and it's   *
  10. 10100 ' *  companion program, RBBS-PC (ver. CPC14.1), to make copies of this    *
  11. 10110 ' *  program and distribute the copies to other users, on the following   *
  12. 10120 ' *  conditions:                                                          *
  13. 10130 ' *    1.   The notices contained in lines 25 through 44 of the programs  *
  14. 10140 ' *         are not altered, bypassed, or removed.                        *
  15. 10150 ' *    2.   The program is not to be disrtibuted to others in modified    *
  16. 10160 ' *         form (i.e. the line numbers must remain the same).            *
  17. 10170 ' *    3.   No fee is to be charged (or any other consideration received) *
  18. 10180 ' *         for coping or distributing these programs without an express  *
  19. 10190 ' *         written agreement with D. Thomas Mack, The Second Ring, 10210 *
  20. 10200 ' *         Oxfordshire Road, Great falls, Virginia 22006                 *
  21. 10210 ' *                                                                       *
  22. 10220 ' *   Copyright (c) 1983, 1984, 1985, 1986 Thomas Mack, The Second Ring   *
  23. 10230 ' *************************************************************************
  24. 10240 DEFINT A-Z:CLEAR:DIM A$(10),SA(7),MD(21),FS(10),UA(16),HA$(9),DNLD$(99)
  25. 10250 WIDTH 80:CLS:I!=FRE(C$):KEY OFF:LOCATE ,,0
  26. 10260 PRINT TAB(60)"tm":PRINT TAB(16) STRING$(15,205)" U S E R W A R E "STRING$(15,205)
  27. 10270 PRINT:PRINT TAB(17)"Capital PC User Group User-Supported Software":PRINT:PRINT TAB(5) CHR$(214)STRING$(67,196)CHR$(183)
  28. 10280 FOR I=1 TO 12:READ A$:PRINT TAB(5) CHR$(186);A$;SPACE$(67-LEN(A$));CHR$(186):NEXT
  29. 10290 PRINT TAB(5) CHR$(211)STRING$(67,196)CHR$(189):PRINT TAB(21)"Copyright (c)1983,1984,1985,1986 Tom Mack, 10210 Oxfordshire Rd,Great Falls, VA
  30. 10300 DATA"    If you are using RBBS-PC CPC14.1 and find it valuable, I
  31. 10310 DATA"    suggest you consider a contribution to
  32. 10320 DATA"
  33. 10330 DATA"                 Capital PC Software Exchange
  34. 10340 DATA"                     Post Office Box 6128
  35. 10350 DATA"                Silver Spring, Maryland  20906
  36. 10360 DATA"
  37. 10370 DATA"    You are free to copy and share RBBS-PC CPC14.1 with
  38. 10380 DATA"    others on these three conditions:
  39. 10390 DATA"      1.  This program is not distributed in modified form.
  40. 10400 DATA"      2.  No fee or consideration is charged.
  41. 10410 DATA"      3.  This notice is not bypassed or removed.
  42. 10420 DEF FNTI!=CSNG(FIX((VAL(MID$(TIME$,1,2))*60*60)+(VAL(MID$(TIME$,4,2))*60)+(VAL(MID$(TIME$,7,2))*1))) ' CPC10
  43. 10422 DEF FNHSH(X$)=((ASC(X$)*100 + ASC(MID$(X$,LEN(X$)/2,1))*10 + ASC(RIGHT$(X$,1))) MOD UB) + 1
  44. 10424 DEF FNHSH2(X$)=(ASC(MID$(X$,2,1))*10 + 7) MOD UB
  45. 10430 CA$="RBBS-PC.DEF":M$="Z":MAXD=10
  46. 10440 FGR=7
  47. 10450 BGR=0
  48. 10460 BDR=0
  49. 10470 IA!=FNTI!+5
  50. 10480 IF FNTI!<IA! THEN LOCATE 22,15:GOTO 10480
  51. 10490 LOCATE 22,15:PRINT SPC(64):LOCATE 22,15:PRINT"Will you be running multiple copies of RBBS-PC (YES or NO)?";
  52. 10500 GOSUB 22380:ON AB GOTO 10530,10510,10490,10490
  53. 10510 GOSUB 22480
  54. 10520 ' *************************************************************************
  55. 10530 ON ERROR GOTO 60010:DD$="C":GOSUB 10540:SG$=SG1$:FILE$=CA$:GOSUB 30000:IF OK THEN GOTO 10535
  56. 10531 GOSUB 31060:PRINT CA$+" file not found.  A new one will be created.";:IA!=FNTI!+5:GOSUB 60440
  57. 10532 GOSUB 31060:PRINT "Default drive on which RBBS is to reside (A-"+M$+"): ";:LINE INPUT;HJ$:GOSUB 50654:IF LEN(HJ$)<>1 OR HJ$<"A" OR HJ$>M$ THEN 10532
  58. 10533 DD$=HJ$:GOSUB 10540:GOTO 11870
  59. 10535 OPEN "I",#1,CA$:GOTO 11590
  60. 10540 D$=DD$+":":FA=0:IB=0:TA=NOT FA:MB=9:MC=1:EA$="IBM's DOS":RA$="INTERNAL":UB=16:ME$=D$+"MESSAGES":MF$=D$+"MESSAGES.BAK":CB$=D$+"CALLERS":CC$=D$+"COMMENTS":UC$=D$+"USERS":C$="":HA$="HELP0":HA$(1)="HELP01":HA$(2)="HELP02":HA$(3)="HELP03"
  61. 10720 HA$(4)="HELP04":HA$(5)="HELP05":HA$(6)="HELP06":HA$(7)="HELP07":HA$(8)="HELP08":HA$(9)="HELP09":BA$="BULLET":BB$="BULLET":WA$=D$+"WELCOME":NA$=D$+"NEWUSER":MG$=D$+"MENU1":MH$=D$+"MENU2":MI$=D$+"MENU3":MJ$=D$+"MENU4":MK$=D$+"MENU5"
  62. 10880 CD$=D$+"CONFENCE":BC$=D$+"TRASHCAN":VA=0:OA=TA:UD=FA:CK=FA:PL=23:LW=19:WB=FA:DIR$="DIR":TB$=DD$:BD$=TB$:HB$=TB$:DA=2:NB$="TOM":NC$="MACK":PA$="RBBS-PC":FF$="RBBS-PC":PB$="CPC12":XPR=0:VER$="(Version 1.95)":CE=1:ML=0:VA=ML:DB=5:SB=10
  63. 11110 CF=0:KA$=PA$:ND=5:SF=10:FOR I=1 TO 7:SA(I)=SF:NEXT:MM=5:FOR I=1 TO 21:MD(I)=MM:NEXT:FC=5:FOR I=1 TO 10:FS(I)=FC:NEXT:UE=5:FOR I=1 TO 16:UA(I)=UE:NEXT:PD$=TB$+":"+"PASSWRDS":CG=3:CH=5:WC=SB:MN=5:FD$=DD$+DD$:MO$=DD$:UF$="99":RB$=D$+"RBBS.BAT":PC=SB
  64. 11204 FB$=TB$+":"+"FILESEC":SC=10:SD=10:SE=0:SY$="IBMPC":TY=180:UPX!=0:B$="300"
  65. 11270 CI$=D$+"RCTTY.BAT":OB$="NO":OC$="NO":BE=0:PCJR=0:TC!=72:MP=5:LA=1:AC=800:AD=2200:CL=FA:OD=TA:M13$="COM1":RC=TA:BF=TA:MW$=". ":M26=FA:M28=FA:M29=FA:BG=6:CM=0
  66. 11271  SK$="         --- RBBS-PC'S Local Keyboard's Active Keys and Their Use --- "
  67. 11272 SM1$="ESC- SYSOP sign-on locally to RBBS.    END - Lock-out & logoff current user."
  68. 11273 SM2$="F1 - End RBBS-PC and exit to DOS.      PgUp- Display current user's information."
  69. 11274 SM3$="F2 - Temporarily exit to DOS.          PgDn- End display of user's information."
  70. 11275 SM4$="F3 - Toggle Line Printer."
  71. 11276 SM5$="F4 - Toggle SYSOP Page Bell."
  72. 11277 SM6$="F5 - Force on-line state."
  73. 11278 SM7$="F6 - Toggle SYSOP available."
  74. 11279 SM8$="F7 - SYSOP next on system."
  75. 11280 SM9$="F8 - Grant temporary SYSOP privileges."
  76. 11281  SH$="F9 - Toggle SNOOP."
  77. 11282  SI$="F10- Force CHAT - ESC to end.":SG1$="ATM0Q1S2=255S10=30E0S0=0    "
  78. 11551 DNLD.SUB=0:M30=FA:M31=FA:M32=FA:M34=FA:M35=FA:M36=TA:M37=FA:M39=FA:M40=FA:M33$="":M1$="ATZ":M2$="ATS1?":M3$="ATQ0X1V1A":M4$="ATQ1E1H1M0":M38$=DD$+":":RETURN
  79. 11580 ' RBBS-PC Configuration Program for Compilable RBBS-PC
  80. 11590 LOCATE 22,15:PRINT SPC(64);
  81. 11600 INPUT #1,FD$,PA$,PB$,NB$,NC$,CE,AC,AD,TC!,MP,LA,UF$,XPR,BG,BE,PCJR,CL,MG$,MH$,MI$,MJ$,MK$,CD$,VA,OA,UD,PL,LW,WB,MO$
  82. 11610 GOSUB 22340
  83. 11620 INPUT #1,ME$,MF$,CB$,CC$,UC$,WA$,NA$,DIR$,M13$,OD,SG$,TB$,DA,FGR,BGR,BDR,RB$,CI$:IF LEN(SG$)<>28 THEN SG$=SG1$
  84. 11630 GOSUB 22340
  85. 11640 INPUT #1,OB$,OC$,HA$(1),HA$(2),HA$(3),HA$(4),HA$(5),HA$(6),HA$(7),HA$(8),HA$(9),BA$,BB$,BD$,RC,BF,SD,MC,SE,CF,UB,MQ!,BC$:GOSUB 21895
  86. 11650 GOSUB 22340
  87. 11660 INPUT #1,ML,DB,SB,FB$,SC,KA$,ND,SA(1),SA(2),SA(3),SA(4),SA(5),SA(6),SA(7),PD$,CG,CH,WC,MN,M26
  88. 11670 GOSUB 22340
  89. 11680 INPUT #1,MD(1),MD(2),MD(3),MD(4),MD(5),MD(6),MD(7),MD(8),MD(9),MD(10),MD(11),MD(12),MD(13),MD(14),MD(15),MD(16),MD(17),MD(18),MD(19),MD(20),MD(21),SY$,TY
  90. 11690 GOSUB 22340
  91. 11700 INPUT #1,FS(1),FS(2),FS(3),FS(4),FS(5),FS(6),FS(7),FS(8),FS(9),FS(10),UA(1),UA(2),UA(3),UA(4),UA(5),UA(6),UA(7),UA(8),UA(9),UA(10),UA(11),UA(12),UA(13),UA(14),UA(15),UA(16),UPX!,CM,CK,FF$,M28,M29,MW$,B$
  92. 11705 INPUT #1,SK$,SM1$,SM2$,SM3$,SM4$,SM5$,SM6$,SM7$,SM8$,SM9$,SH$,SI$,PC
  93. 11706 INPUT #1,DNLD.SUB,M30,M31,M32,M33$,M34,M35,M36,M37,M1$,M2$,M3$,M4$,M38$,M39,M40,LSB,MSB,LCR,MCR,LSR,MSR
  94. 11707 IF DNLD.SUB<1 OR DNLD.SUB>99 THEN GOTO 11710 ELSE FOR I=1 TO DNLD.SUB:INPUT #1,DNLD$(I):NEXT
  95. 11710 GOSUB 22340
  96. 11720 BA$=RIGHT$(BA$,(LEN(BA$)-2))
  97. 11730 BB$=RIGHT$(BB$,(LEN(BB$)-2))
  98. 11740 IF CF=0 THEN RA$="INTERNAL" ELSE RA$="SYSTEM
  99. 11750 HB$=LEFT$(HA$(1),1)
  100. 11760 HA$(1)=RIGHT$(HA$(1),(LEN(HA$(1))-2))
  101. 11770 HA$=LEFT$(HA$(1),LEN(HA$(1))-1)
  102. 11780 SF=SA(1):FOR I=2 TO 7:IF SA(I)>SF THEN GOTO 11790 ELSE SF=SA(I)
  103. 11790 NEXT
  104. 11800 MM=MD(1):FOR I=2 TO 21:IF MD(I)>MM THEN GOTO 11810 ELSE MM=MD(I)
  105. 11810 NEXT
  106. 11820 FC=FS(1):FOR I=2 TO 10:IF FS(I)>FC THEN GOTO 11830 ELSE FC=FS(I)
  107. 11830 NEXT
  108. 11840 UE=UA(1):FOR I=2 TO 16:IF UA(I)>UE THEN GOTO 11850 ELSE UE=UA(I)
  109. 11850 NEXT
  110. 11860 CLOSE #1:GOSUB 22340
  111. 11862 GOSUB 50480:GOSUB 22340
  112. 11864 GOSUB 50530:GOSUB 22340
  113. 11870 IF XPR=0 THEN M5$="NOVICE
  114. 11880 IF XPR=-1 THEN M5$="EXPERT
  115. 11890 M6$=RIGHT$(FD$,1)
  116. 11900 M7$=LEFT$(FD$,(LEN(FD$)-1))
  117. 11910 M10$="ON":IF BE=0 THEN M10$="OFF
  118. 11912 M12$="BASICA":IF CL=TA THEN M12$="COMPILED
  119. 11914 M15$="NO":IF OD=TA THEN M15$="YES
  120. 11916 M14$="ON":IF VAL(MID$(SG$,4,1))=0 THEN M14$="OFF
  121. 11918 M16$="NO":IF RC=TA THEN M16$="YES
  122. 11920 M17$="NO":IF BF=TA THEN M17$="YES
  123. 11922 M18$="YES":IF OA=FA THEN M18$="NO
  124. 11924 M19$="NO":IF UD=TA THEN M19$="YES
  125. 11926 M20$="NO":IF CK=TA THEN M20$="YES
  126. 11928 M21$="NO":IF WB=TA THEN M21$="YES
  127. 11930 IF PA$="" THEN MN1$="(Disabled)" ELSE MN1$=PA$
  128. 11931 IF PB$="" THEN MN2$="(Disabled)" ELSE MN2$=PB$
  129. 11932 M11$="NO":IF MW$=". "+CHR$(7) THEN M11$="YES
  130. 11934 M26$="NO":IF M26=TA THEN M26$="YES
  131. 11936 M28$="NO":IF M28=TA THEN M28$="YES
  132. 11938 M29$="NO":IF M29=TA THEN M29$="YES
  133. 11940 M30$="NO":IF M30=TA THEN M30$="YES
  134. 11942 M31$="NO":IF M31=TA THEN M31$="YES
  135. 11944 M32$="NO":IF M32=TA THEN M32$="YES
  136. 11946 M34$="NO":IF M34=TA THEN M34$="YES"
  137. 11947 IF M34=-2 THEN M34$="YES=Registered users"
  138. 11948 M35$="NO":IF M35=TA THEN M35$="YES
  139. 11950 M36$="NO":IF M36=TA THEN M36$="YES
  140. 11952 M37$="NO":IF M37=TA THEN M37$="YES
  141. 11953 M39$="NO":IF M39=TA THEN M39$="YES
  142. 11954 M40$="NO":IF M40=TA THEN M40$="YES
  143. 12150 Y$="
  144. 12151 F=0
  145. 12155 MAINMSG$=ME$
  146. 12156 MAINUSR$=UC$
  147. 12160 KEY OFF:GOSUB 22340
  148. 12161 IO=0            ' set initial message number to 0
  149. 12162 ID=1            ' USERS file    -- first record number
  150. 12163 IE=ID           ' USERS file    -- next available record number
  151. 12164 IG=UB           ' USERS file    -- last record number
  152. 12165 IJ=1+MC+1       ' MESSAGES file -- first record of messages
  153. 12166 II=IJ           ' MESSAGES file -- next available record number
  154. 12167 IH=5*MP+1+MC    ' MESSAGES file -- last record number
  155. 12168 IM=MP           ' MESSAGES file -- maximum number of messages
  156. 12169 FILE$=ME$:MF=0:UF=0
  157. 12170 GOSUB 30000     ' If MESSAGES exist, get checkpoint record
  158. 12171 IF OK THEN MF=OK:GOSUB 30040:UB=IG:MQ!=IH:MP=INT((IH-IJ)/5)+1
  159. 12172 IF MP>999 THEN MP=VAL("999")
  160. 12173 IF IM<1 THEN IM=MP:GOSUB 30450  ' Assure number of msgs.>0
  161. 12174 FILE$=UC$       ' Check for USERS file
  162. 12175 GOSUB 30000     ' If USERS file exist, set values
  163. 12176 IF OK THEN UF=OK:FILE$=UC$:GOSUB 30180:UB=IG
  164. 12177 IF NOT MF AND F<>2 THEN IE=UG+1      ' if no MESSAGES file, assume USERS full
  165. 12178 IF MF THEN GOSUB 30450      ' if MESSAGES file, re-write checkpoint
  166. 12179 IF NOT MF THEN GOSUB 30230  ' write new MESSAGES file if none
  167. 12180 IF NOT UF AND MF THEN UB=IG:GOSUB 50000  ' write new USERS file if none
  168. 12181 IF NOT UF AND NOT MF THEN GOSUB 50000  ' write new USERS file if none
  169. 12182 FOR I=1 TO 10:KEY I,"":NEXT
  170. 12183 B1=UB:GOSUB 22140
  171. 12190 COLOR FGR,BGR,BDR:CLS:I!=FRE(C$)
  172. 12200 COLOR 0,7,0:LOCATE 4,10:PRINT"RBBS-PC CPC14.1B CONFIGURATION PROGRAM "+VER$:COLOR FGR,BGR,BDR
  173. 12210 LOCATE 1,1,0:PRINT"Copyright (c) 1983, 1984, 1985, 1986 by Tom Mack";
  174. 12211 LOCATE 2,1,0:PRINT" 10210 Oxfordshire Rd., Great Falls, VA 22066";
  175. 12215 IF F THEN GOSUB 24970
  176. 12220 LOCATE  6,2:PRINT"  F1            Global RBBS-PC Parameters (part 1)
  177. 12230 LOCATE  8,2:PRINT"  F2            Global RBBS-PC Parameters (part 2)
  178. 12240 LOCATE 10,2:PRINT"  F3            Parameters for static RBBS-PC Files
  179. 12250 LOCATE 12,2:PRINT"  F4            Parameters for dynamic RBBS-PC's Files
  180. 12260 LOCATE 14,2:PRINT"  F5            Parameters for RBBS-PC's 'Doors'
  181. 12270 LOCATE 16,2:PRINT"  F6            Parameters for RBBS-PC's Security
  182. 12280 LOCATE 18,2:PRINT"  F7            Parameters for multiple RBBS-PC's
  183. 12290 LOCATE 20,2:PRINT"  F8            RBBS-PC utilities
  184. 12295 LOCATE 22,2:PRINT"  F9            Use of DOS subdirectories":XX$="Press END to terminate or select function key to change parameters shown.":GOSUB 50345
  185. 12310 GOSUB 22160
  186. 12320 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,12350,12360,12350
  187. 12330 GOTO 12310
  188. 12350 GOSUB 60380:GOTO 12310
  189. 12360 CN=1
  190. 12370 GOSUB 24800
  191. 12380 LOCATE  3,10:PRINT" 1. SYSOP's First Name --------------------------- "+NB$
  192. 12390 LOCATE  4,10:PRINT" 2. SYSOP's Last Name ---------------------------- "+NC$
  193. 12400 LOCATE  5,10:PRINT" 3. Password #1 for SYSOP to sign on remotely ---- "+MN1$
  194. 12410 LOCATE  6,10:PRINT" 4. Password #2 for SYSOP to sign on remotely----- "+MN2$
  195. 12420 LOCATE  7,10:PRINT" 5. Password for SYSOP to sign on locally -------- "+KA$
  196. 12430 LOCATE  8,10:PRINT" 6. SYSOP's default sign-on mode ----------------- "+M5$
  197. 12440 LOCATE  9,10:PRINT" 7. SYSOP's office hours ------------------------ "STR$(AC);" to "STR$(AD)
  198. 12445 LOCATE 10,10:PRINT" 8. Page SYSOP using printer's bell -------------- "+M11$
  199. 12450 LOCATE 11,10:PRINT" 9. Number of rings to wait before answering -----"STR$(CE)
  200. 12460 LOCATE 12,10:PRINT"10. Deny access to callers who use 300 baud ------ "+M34$
  201. 12470 LOCATE 13,10:PRINT"11. Are you using ANSI.SYS with a color monitor -- "+M35$
  202. 12480 LOCATE 14,10:PRINT"12. Go off-line whenever a DISK FULL occurs ------ "+M36$
  203. 12490 LOCATE 15,10:PRINT"13. Prompt bell default is ----------------------- "+M10$
  204. 12500 LOCATE 16,10:PRINT"14. Maximum time per session (in minutes) --------"STR$(TC!)
  205. 12510 LOCATE 17,10:PRINT"15. Limit each user to"+STR$(TC!)+" minutes/day? "+STRING$((14-LEN(STR$(TC!))),45)+" "+M26$
  206. 12530 LOCATE 18,10:PRINT"16. # Months of inactivty before user deleted ----"STR$(LA)
  207. 12560 LOCATE 19,10:PRINT"17. Communications port to be used by RBBS-PC ---- "+M13$
  208. 12570 LOCATE 20,10:PRINT"18. Version of DOS that RBBS-PC will run under ---"STR$(DA)
  209. 12575 LOCATE 21,10:PRINT"19. Name of RBBS-PC shown initially is ----------- "+FF$
  210. 12580 GOSUB 24890
  211. 12590 GOSUB 22160
  212. 12600 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,12190,14200,12620
  213. 12610 GOTO 12590
  214. 12620 GOSUB 50340:IF VAL(HJ$)<1 OR VAL(HJ$)>19 THEN 12580 ELSE ON VAL(HJ$) GOTO 12840,12910,12980,13060,12670,13140,13210,13224,13228,13238,13245,13249,13750,13840,16650,13940,14120,15240,13131
  215. 12670 GOSUB 31060:PRINT"Enter password (8 characters or less)";:GOSUB 14990: IF LEN(HJ$)>8 OR INSTR(HJ$,"0!") THEN HJ$="5":GOTO 12670 ELSE KA$=HJ$:GOTO 12360
  216. 12730 GOSUB 13590: UF$=HJ$:GOTO 14570
  217. 12840 LOCATE 24,5:PRINT"What is the SYSOP's FIRST name? ";
  218. 12850 LINE INPUT;HJ$
  219. 12860 IF HJ$="" THEN GOTO 12840
  220. 12870 IF LEN(HJ$)<3 GOTO 12840
  221. 12880 GOSUB 50654
  222. 12890 NB$=HJ$
  223. 12900 GOTO 12360
  224. 12910 LOCATE 24,5:PRINT"What is the SYSOP's LAST name? ";
  225. 12920 LINE INPUT;HJ$
  226. 12930 IF HJ$="" THEN GOTO 12910
  227. 12940 IF LEN(HJ$)<3 GOTO 12910
  228. 12950 GOSUB 50654
  229. 12960 NC$=HJ$
  230. 12970 GOTO 12360
  231. 12980 LOCATE 24,5:PRINT"What is the SYSOP's Password #1? ";
  232. 12990 LINE INPUT;HJ$
  233. 13020 GOSUB 50654
  234. 13030 PA$=HJ$
  235. 13040 IF PA$="" THEN MN1$="(Disabled)" ELSE MN1$=PA$
  236. 13050 GOTO 12360
  237. 13060 LOCATE 24,5:PRINT"What is the SYSOP's Password #2? ";
  238. 13070 LINE INPUT;HJ$
  239. 13100 GOSUB 50654
  240. 13110 PB$=HJ$
  241. 13120 IF PB$="" THEN MN2$="(Disabled)" ELSE MN2$=PB$
  242. 13130 GOTO 12360
  243. 13131 LOCATE 24,5:PRINT"Enter name for this RBBS-PC (19 characters or less) ";
  244. 13132 LINE INPUT;HJ$
  245. 13133 IF LEN(HJ$)>19 GOTO 13131
  246. 13134 GOSUB 50654
  247. 13135 FF$=HJ$
  248. 13136 GOTO 12360
  249. 13140 LOCATE 24,5:PRINT"SYSOP's default sign-on mode (EXPERT/NOVICE)? ";
  250. 13150 LINE INPUT;HJ$
  251. 13160 IF LEN(HJ$)=6 OR LEN(HJ$)=1 THEN GOTO 13170 ELSE GOTO 13140
  252. 13170 GOSUB 50654
  253. 13180 IF HJ$="E" OR HJ$="EXPERT" THEN M5$="EXPERT":GOTO 12360
  254. 13190 IF HJ$="N" OR HJ$="NOVICE" THEN M5$="NOVICE":GOTO 12360
  255. 13200 GOTO 13140
  256. 13210 LOCATE 24,5:PRINT"What is the earliest SYSOP wants to be paged? -- HHMM ";
  257. 13211 LINE INPUT;HJ$
  258. 13212 IF LEN(HJ$)<>4 GOTO 13210
  259. 13213 IF FIX(VAL(MID$(HJ$,1,2)))<0 OR FIX(VAL(MID$(HJ$,1,2)))>24 OR FIX(VAL(MID$(HJ$,3,2)))<0 OR FIX(VAL(MID$(HJ$,3,2)))>59 THEN GOTO 13210
  260. 13214 AC=VAL(HJ$)
  261. 13215 IF AC<0 OR AC>2400 THEN GOTO 13210
  262. 13216 LOCATE 25,5:PRINT"What is the latest SYSOP wants to be paged? ---- HHMM ";
  263. 13217 LINE INPUT;HJ$
  264. 13218 IF LEN(HJ$)<>4 GOTO 13216
  265. 13219 IF FIX(VAL(MID$(HJ$,1,2)))<0 OR FIX(VAL(MID$(HJ$,1,2)))>24 OR FIX(VAL(MID$(HJ$,3,2)))<0 OR FIX(VAL(MID$(HJ$,3,2)))>59 THEN GOTO 13216
  266. 13220 AD=VAL(HJ$)
  267. 13221 IF AD<0 OR AD>2400 THEN GOTO 13216
  268. 13222 IF AC>AD THEN SWAP AC,AD
  269. 13223 GOTO 12360
  270. 13224 XX$="Use on-line printer's bell to the page SYSOP? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 13226,13226,13224,13224
  271. 13226 M11$=HJ$
  272. 13227 GOTO 12360
  273. 13228 A$="":MID$(SG$,24,5)="1Q0X1"
  274. 13229 XX$="How many rings should RBBS-PC wait before answering? "+A$:GOSUB 50345
  275. 13230 LINE INPUT;HJ$
  276. 13231 CE=FIX(VAL(HJ$))
  277. 13232 IF CE<0 OR CE>255 THEN GOTO 13228 ELSE IF CE=0 THEN MID$(SG$,24,5)="1Q0X1":GOTO 12360
  278. 13233 XX$="Next call answered after"+STR$(CE)+" rings. Do you want ringback? (YES/NO)":GOSUB 50345
  279. 13234 GOSUB 22380:ON AB GOTO 13237,13235,13233,13233
  280. 13235 IF CE>5 THEN A$="(<6 for ringback)":GOTO 13229
  281. 13236 MID$(SG$,24,5)="255  ":GOTO 12360
  282. 13237 MID$(SG$,24,5)="0    ":GOTO 12360
  283. 13238 LOCATE 24,5:PRINT"Do you want to decline calls from users at 300 BAUD (YES OR NO) ";
  284. 13239 GOSUB 22380:ON AB GOTO 13243,13240,13238,13238
  285. 13240 GOSUB 50340:LOCATE 24,5:PRINT"Are registered users denied use of 300 BAUD (YES OR NO) ";
  286. 13241 GOSUB 22380:ON AB GOTO 13242,13243,13240,13240
  287. 13242 HJ$="YES=Registered users"
  288. 13243 M34$=HJ$
  289. 13244 GOTO 12360
  290. 13245 LOCATE 24,5:PRINT" Using ANSI.SYS for color/graphics on your color monitor (YES OR NO) ";
  291. 13246 GOSUB 22380:ON AB GOTO 13247,13247,13245,13245
  292. 13247 M35$=HJ$
  293. 13248 GOTO 12360
  294. 13249 LOCATE 24,5:PRINT"Should RBBS-PC go off-line when DISK FULL occurs (YES OR NO) ";
  295. 13250 GOSUB 22380:ON AB GOTO 13251,13251,13249,13249
  296. 13251 M36$=HJ$
  297. 13252 GOTO 12360
  298. 13253 LOCATE 24,5:PRINT"Specify single drive in the range A->"+M$+" for "+A$;
  299. 13254 LINE INPUT;HJ$
  300. 13420 IF LEN(HJ$)<>1 THEN GOTO 13253
  301. 13430 GOSUB 50654
  302. 13440 IF HJ$<"A" OR HJ$>M$ THEN GOTO 13253
  303. 13460 RETURN
  304. 13470 LOCATE 24,5:PRINT"Specify download drives (max of"+STR$(MAXD)+" in the range A-> "+M$+"). ";
  305. 13480 LINE INPUT;HJ$
  306. 13490 IF LEN(HJ$)<1 OR LEN(HJ$)>MAXD THEN GOTO 13470
  307. 13500 GOSUB 50654
  308. 13510 FOR I=1 TO LEN(HJ$)
  309. 13520 A$(I)=MID$(HJ$,I,1)
  310. 13530 NEXT
  311. 13540 FOR I=1 TO LEN(HJ$)
  312. 13550 IF A$(I)<"A" OR A$(I)>M$ THEN GOTO 13470
  313. 13560 NEXT
  314. 13570 M7$=HJ$
  315. 13571 IF DNLD.SUB<1 GOTO 14570
  316. 13572 FOR I=1 TO DNLD.SUB
  317. 13573   IF INSTR(1,M7$,LEFT$(DNLD$(I),1))=0 THEN DNLD$(I)=""
  318. 13577 NEXT
  319. 13578 STOPIT=DNLD.SUB
  320. 13579 FOR I=1 TO STOPIT
  321. 13580   IF DNLD$(I)<>"" THEN GOTO 13583
  322. 13581   DNLD$(I)=DNLD$(I+1)
  323. 13582   DNLD$(I+1)=""
  324. 13583 NEXT
  325. 13584 DNLD.SUB=0
  326. 13585 FOR I=1 TO STOPIT
  327. 13586   IF DNLD$(I)<>"" THEN DNLD.SUB=DNLD.SUB+1
  328. 13587 NEXT
  329. 13588 GOTO 14570
  330. 13590 A$="Name of upload directory (max of 8 characters).":MAX=8:GOTO 13599
  331. 13591 A$="Master directory name--used as ext. for others. (3 char. max).":MAX=3
  332. 13599 LOCATE 24,5:PRINT A$;
  333. 13600 LINE INPUT;HJ$:GOSUB 50654
  334. 13610 IF LEN(HJ$)<1 OR LEN(HJ$)>MAX THEN GOTO 13599
  335. 13615 I=0:GOSUB 25920:IF I=0 THEN RETURN ELSE GOTO 13599
  336. 13750 LOCATE 24,5:PRINT"Prompt bell default? (ON or OFF) ";
  337. 13760 LINE INPUT;HJ$
  338. 13770 IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 13750
  339. 13780 GOSUB 50654
  340. 13790 IF HJ$="ON" THEN GOTO 13820
  341. 13800 IF HJ$="OFF" THEN GOTO 13820
  342. 13810 GOTO 13750
  343. 13820 M10$=HJ$
  344. 13830 GOTO 12360
  345. 13840 LOCATE 24,5:PRINT"Set maximum minutes a user can stay on the system ";
  346. 13850 LINE INPUT;HJ$
  347. 13860 TC!=VAL(HJ$)
  348. 13870 IF TC!<0 OR TC!>1440 THEN GOTO 13840
  349. 13880 GOTO 12360
  350. 13890 J=999:IF ((MQ!-1-MC)/5)<J THEN J=(MQ!-1-MC)/5
  351. 13895 GOSUB 50340:LOCATE 24,5:PRINT"Set maximum number of messages allowed (MAX="+STR$(FIX(J))+")";
  352. 13900 LINE INPUT;HJ$
  353. 13910 MP=VAL(HJ$)
  354. 13920 IF MP<1 AND MP>999 THEN GOTO 13890
  355. 13922 IF MP>0 AND MP<1000 AND MP<J+1 THEN GOTO 13929
  356. 13924 XX$="Increase the "+ME$+" file to "+STR$((MP*5)+1+MC)+" records? (YES OR NO) ":GOSUB 50345
  357. 13926 GOSUB 22380:ON AB GOTO 13890,13927,13890,13890
  358. 13927 IM=MP:GOSUB 30450:B3!=(MP*5)+1+MC:GOSUB 22080:GOTO 21550
  359. 13929 IM=MP:GOSUB 30450
  360. 13930 GOTO 21550
  361. 13940 LOCATE 24,5:PRINT"Set number of months before an inactive user is purged. ";
  362. 13950 LINE INPUT;HJ$
  363. 13960 LA=VAL(HJ$)
  364. 13970 IF LA<1 OR LA>12 THEN GOTO 13940
  365. 13980 GOTO 12360
  366. 14120 CP1=1
  367. 14130 CP2=2
  368. 14140 LOCATE 24,5:PRINT"Number of communication port to be used ("+STR$(CP1)+" or"+STR$(CP2)+" )? ";
  369. 14150 LINE INPUT;HJ$
  370. 14160 IF LEN(HJ$)<>1 THEN GOTO 14120
  371. 14170 IF FIX(VAL(MID$(HJ$,1,1)))<CP1 OR FIX(VAL(MID$(HJ$,1,1)))>CP2 THEN GOTO 14120
  372. 14180 M13$="COM"+HJ$
  373. 14190 GOTO 12360
  374. 14200 CN=2
  375. 14210 GOSUB 24800
  376. 14220 LOCATE  3,10:PRINT"21. Foreground color (for color monitors) is -----"STR$(FGR)
  377. 14230 LOCATE  4,10:PRINT"22. Background color (for color monitors) is -----"STR$(BGR)
  378. 14240 LOCATE  5,10:PRINT"23. The border color (for color monitors) is -----"STR$(BDR)
  379. 14250 LOCATE  6,10:PRINT"24. The modem speaker default is ----------------- "+M14$
  380. 14260 LOCATE  7,10:PRINT"25. Remind users of messages that they left ------ "+M16$
  381. 14270 LOCATE  8,10:PRINT"26. Remind users of # uploads and downloads? ----- "+M19$
  382. 14275 LOCATE  9,10:PRINT"27. Remind users of their terminal profile? ------ "+M20$
  383. 14280 LOCATE 10,10:PRINT"28. Default user page length is ------------------"STR$(PL)
  384. 14290 LOCATE 11,10:PRINT"29. Maximum number of lines allowed per message --"STR$(LW)
  385. 14300 LOCATE 12,10:PRINT"30. Require non-ascii protocol for binary files -- "+M17$
  386. 14305 LOCATE 13,10:PRINT"31. Is MICROCOM's MNP protocol available? -------- "+M29$
  387. 14310 LOCATE 14,10:PRINT"32. Omit ";DIR$;" from N)ew command ";STRING$(22-LEN(DIR$),"-");" ";OB$
  388. 14320 LOCATE 15,10:PRINT"33. Omit ";+UF$;" from N)ew command ";STRING$(22-LEN(UF$),"-");" ";OC$
  389. 14330 LOCATE 16,10:PRINT"34. Is system 'welcome' interruptable? ----------- "+M18$
  390. 14340 LOCATE 17,10:PRINT"35. Are system bulletins to be 'optional'? ------- "+M15$
  391. 14360 GOSUB 16062:LOCATE 18,10:PRINT"36. Type of PC RBBS-PC will be running on? ------- "+M27$
  392. 14365 LOCATE 19,10:PRINT"37. Issue modem commands between rings ----------- "+M28$
  393. 14366 LOCATE 20,10:PRINT"38. Baud rate to initially open modem at --------- "+B$
  394. 14367 LOCATE 21,10:PRINT"39. Seconds waited before logging off idle users -"+STR$(TY)
  395. 14368 LOCATE 22,10:PRINT"40. Are you using a 'DUMB' auto-answer modem? -----"+M39$
  396. 14370 GOSUB 24890
  397. 14380 GOSUB 22160
  398. 14390 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,12360,14570,14410
  399. 14400 GOTO 14380
  400. 14410 GOSUB 50340:IF VAL(HJ$)<21 OR VAL(HJ$)>40 THEN 14370 ELSE ON VAL(HJ$)-20 GOTO 14420,14430,14440,15710,15800,16690,16722,16730,16790,15880,15911,15920,15960,16000,15840,16040,16121,16124,16031,16725
  401. 14420 GOSUB 15520: GOTO 15530
  402. 14430 GOSUB 15520: GOTO 15590
  403. 14440 GOSUB 15520: GOTO 15650
  404. 14570 CN=3
  405. 14580 GOSUB 24800
  406. 14590 LOCATE  3,10:PRINT"41. Drive containing RBBS-PC bulletins is -------- "+BD$
  407. 14600 LOCATE  4,10:PRINT"42. Name of file describing 'bulletins' is ------- "+BA$
  408. 14610 LOCATE  5,10:PRINT"43. Number of active 'bulletins' -----------------"+STR$(BG)
  409. 14620 LOCATE  6,10:PRINT"44. Prefix used to name bulletin files is -------- "+BB$
  410. 14630 LOCATE  7,10:PRINT"45. Drive containing 'help' files is ------------- "+HB$
  411. 14640 LOCATE  8,10:PRINT"46. Prefix used to name the nine 'help' files ---- "+HA$
  412. 14650 LOCATE  9,10:PRINT"47. Name of 'newuser' file shown to new users ---- "+NA$
  413. 14660 LOCATE 10,10:PRINT"48. Name of 'welcome' file shown at logon -------- "+WA$
  414. 14670 LOCATE 11,10:PRINT"49. File directory ext. (name of master directory) "+DIR$
  415. 14680 LOCATE 12,10:PRINT"50. The SYSOP's command menu is named ------------ "+MG$
  416. 14690 LOCATE 13,10:PRINT"51. The main messages subsystem menu is named ---- "+MH$
  417. 14700 LOCATE 14,10:PRINT"52. The file subsystem menu is named ------------- "+MI$
  418. 14710 LOCATE 15,10:PRINT"53. The utilities subsystem menu is named -------- "+MJ$
  419. 14730 LOCATE 16,10:PRINT"54. Menu that lists available conferences is ----- "+CD$
  420. 14740 LOCATE 17,10:PRINT"55. File containing invalid user names ----------- "+BC$
  421. 14742 LOCATE 18,10:PRINT"56. Factor to extend session time for uploads ----"+STR$(UPX!)
  422. 14744 LOCATE 19,10:PRINT"57. Default system type for new callers ---------- "+SY$
  423. 14745 LOCATE 20,10:PRINT"58. Drive available for Uploading ---------------- "+M6$
  424. 14746 LOCATE 21,10:PRINT"59. Name of directory for uploading -------------- "+UF$
  425. 14747 LOCATE 22,10:PRINT"60. Drive(s) available for Downloading ----------- "+M7$
  426. 14750 GOSUB 24890
  427. 14760 GOSUB 22160
  428. 14770 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,14200,15340,14790
  429. 14780 GOTO 14760
  430. 14790 GOSUB 50340
  431. 14800 IF HJ$="41"THEN GOSUB 15160:BD$=TB$:GOTO 14570
  432. 14810 IF HJ$="42" THEN GOSUB 14970:BA$=HJ$: GOTO 14570
  433. 14820 IF HJ$="43" THEN GOTO 15290
  434. 14830 IF HJ$="44" THEN GOSUB 14970: IF LEN(HJ$)>6 THEN HJ$="44":GOTO 14810 ELSE BB$=HJ$: GOTO 14570
  435. 14840 IF HJ$="45" THEN GOSUB 15160:HB$=HJ$: GOTO 14570
  436. 14850 IF HJ$="46" THEN GOSUB 14970: IF LEN(HJ$)>7 THEN HJ$="44":GOTO 14810 ELSE HA$=HJ$: GOTO 14570
  437. 14860 IF HJ$="47" THEN GOSUB 17330: NA$=SJ$+":"+HJ$: GOTO 14570
  438. 14870 IF HJ$="48" THEN GOSUB 17330: WA$=SJ$+":"+HJ$: GOTO 14570
  439. 14880 IF HJ$="49" THEN GOSUB 13591: DIR$=HJ$: GOTO 14570
  440. 14890 IF HJ$="50" THEN GOSUB 17330: MG$=SJ$+":"+HJ$: GOTO 14570
  441. 14900 IF HJ$="51" THEN GOSUB 17330: MH$=SJ$+":"+HJ$: GOTO 14570
  442. 14910 IF HJ$="52" THEN GOSUB 17330: MI$=SJ$+":"+HJ$: GOTO 14570
  443. 14920 IF HJ$="53" THEN GOSUB 17330: MJ$=SJ$+":"+HJ$: GOTO 14570
  444. 14940 IF HJ$="54" THEN GOSUB 17330: CD$=SJ$+":"+HJ$: GOTO 14570
  445. 14950 IF HJ$="55" THEN GOSUB 17330: BC$=SJ$+":"+HJ$:GOTO 14570
  446. 14952 IF HJ$="56" THEN GOSUB 15234:GOTO 14570
  447. 14954 IF HJ$="57" THEN GOSUB 15236:GOTO 14570
  448. 14955 IF HJ$="58" THEN A$="uploading":GOSUB 13253:M6$=HJ$:IF LEN(M33$)>1 THEN MID$(M33$,1,1)=M6$:GOTO 14570 ELSE GOTO 14570
  449. 14956 IF HJ$="59" THEN GOTO 12730
  450. 14957 IF HJ$="60" THEN GOTO 13470
  451. 14960 GOTO 14750
  452. 14970 X$=HJ$
  453. 14980 GOSUB 31060:PRINT"Specify name of the file for option "+X$+". ";
  454. 14990 LINE INPUT;HJ$:GOSUB 50654
  455. 15000 IF LEN(HJ$)<1 OR LEN(HJ$)>12 THEN GOTO 14980
  456. 15010 L1=INSTR(HJ$,"."):IF L1=0 THEN IF LEN(HJ$)<9 THEN GOTO 15045 ELSE GOTO 14980
  457. 15020 IF L1>9 THEN GOTO 14980
  458. 15030 IF L1<2 THEN GOTO 14980
  459. 15040 IF LEN(HJ$)-L1>3 THEN GOTO 14980
  460. 15045 I=0:GOSUB 25920:IF I=0 THEN RETURN ELSE GOTO 14980
  461. 15160 X$=HJ$
  462. 15170 LOCATE 24,5:PRINT"Specify drive in the range A->"+M$+" for option "+X$". ";
  463. 15180 LINE INPUT;HJ$
  464. 15190 IF LEN(HJ$)<>1 THEN GOTO 15170
  465. 15200 GOSUB 50654
  466. 15210 IF HJ$<"A" OR HJ$>M$ THEN GOTO 15170
  467. 15220 TB$=HJ$
  468. 15230 RETURN
  469. 15234 LOCATE 24,5:PRINT "Extend by what fraction of time uploading ";:LINE INPUT;HJ$:IF VAL(HJ$)<0 OR VAL(HJ$)>10 THEN 15234 ELSE UPX!=VAL(HJ$):RETURN
  470. 15236 LOCATE 24,5:PRINT "Enter default system type ";:LINE INPUT;SY$:IF LEN(SY$)<2 THEN GOSUB 50340:GOTO 15236 ELSE RETURN
  471. 15240 LOCATE 24,5:PRINT"What version of DOS will RBBS-PC be running under (1, 2, or 3)?";
  472. 15250 LINE INPUT;HJ$
  473. 15260 B1=VAL(HJ$)
  474. 15270 IF B1<1 OR B1>3 THEN GOTO 15240
  475. 15280 DA=B1:GOTO 12360
  476. 15290 LOCATE 24,5:PRINT"Enter number of active 'bulletins' (0 to 99)";
  477. 15300 LINE INPUT;HJ$
  478. 15310 B1%=VAL(HJ$)
  479. 15320 IF B1%<0 OR B1%>99 THEN GOTO 15290
  480. 15330 BG=B1%:GOTO 14570
  481. 15340 CN=4
  482. 15350 GOSUB 24800
  483. 15360 LOCATE  4,10:PRINT"61. System file containing messages is named ----- "+ME$
  484. 15380 LOCATE  5,10:PRINT"62. System file for 'callers' is named ----------- "+CB$
  485. 15390 LOCATE  6,10:PRINT"63. System file for comments to SYSOP is named --- "+CC$
  486. 15400 LOCATE  7,10:PRINT"64. System file for recording users is named ----- "+UC$
  487. 15405 LOCATE  8,10:PRINT"65. Extended logging to 'callers' file ----------- "+M37$
  488. 15406 LOCATE  9,10:PRINT"66. Record comments as private messages ---------- "+M40$
  489. 15410 GOSUB 24890
  490. 15420 GOSUB 22160
  491. 15430 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,14570,16130,15450
  492. 15440 GOTO 15420
  493. 15450 GOSUB 50340
  494. 15460 IF HJ$="61" THEN GOSUB 17330: GOTO 15511
  495. 15480 IF HJ$="62" THEN GOSUB 17330: CB$=SJ$+":"+HJ$:GOTO 15340
  496. 15490 IF HJ$="63" THEN GOSUB 17330: CC$=SJ$+":"+HJ$:GOTO 15340
  497. 15500 IF HJ$="64" THEN GOSUB 17330: GOTO 15512
  498. 15505 IF HJ$="65" THEN GOTO 15991
  499. 15506 IF HJ$="66" THEN GOTO 15993
  500. 15510 GOTO 15410
  501. 15511 IF LEN(HJ$)>8 OR INSTR(HJ$,".") THEN HJ$="61":GOTO 15460 ELSE ME$=SJ$+":"+HJ$:MF$=ME$+".BAK":MAINMSG$=ME$:GOTO 15340
  502. 15512 IF LEN(HJ$)>8 OR INSTR(HJ$,".") THEN HJ$="64":GOTO 15500 ELSE UC$=SJ$+":"+HJ$:MAINUSR$=UC$:GOTO 15340
  503. 15520 LOCATE 24,5:PRINT"(See the description of the COLOR statement in Basic.)";:RETURN
  504. 15530 LOCATE 25,5:PRINT"Enter foreground color (a value between 0 and 15)";
  505. 15540 LINE INPUT;HJ$
  506. 15550 B1=VAL(HJ$)
  507. 15560 IF B1<0 OR B1>15 THEN GOTO 15530
  508. 15570 FGR=B1
  509. 15580 GOTO 14200
  510. 15590 LOCATE 25,5:PRINT"Enter background color (a value between 0 and 7)";
  511. 15600 LINE INPUT;HJ$
  512. 15610 B1=VAL(HJ$)
  513. 15620 IF B1<0 OR B1>7 THEN GOTO 15590
  514. 15630 BGR=B1
  515. 15640 GOTO 14200
  516. 15650 LOCATE 25,5:PRINT"Enter the border color (a value between 0 and 7)";
  517. 15660 LINE INPUT;HJ$
  518. 15670 B1=VAL(HJ$)
  519. 15680 IF B1<0 OR B1>7 THEN GOTO 15650
  520. 15690 BDR=B1
  521. 15700 GOTO 14200
  522. 15710 LOCATE 24,5:PRINT"Modem speaker default? (ON or OFF) ";
  523. 15720 LINE INPUT;HJ$
  524. 15730 IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 15710
  525. 15740 GOSUB 50654
  526. 15750 IF HJ$="ON" THEN GOTO 15780
  527. 15760 IF HJ$="OFF" THEN GOTO 15780
  528. 15770 GOTO 15710
  529. 15780 M14$=HJ$
  530. 15790 GOTO 14200
  531. 15800 XX$="Remind users of the messages they left? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 15820,15820,15800,15800
  532. 15820 M16$=HJ$:GOTO 14200
  533. 15840 XX$="Are system bulletins to be optional? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 15860,15860,15840,15840
  534. 15860 M15$=HJ$:GOTO 14200
  535. 15880 XX$="Is non-ascii protocol required for binary files? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 15900,15900,15880,15880
  536. 15900 M17$=HJ$:GOTO 14200
  537. 15911 XX$="Enable MICROCOM's MNP protocol? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 15913,15913,15911,15911
  538. 15913 M29$=HJ$:GOTO 14200
  539. 15920 XX$="Is "+DIR$+" omitted from the N)ew command? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 15940,15940,15920,15920
  540. 15940 OB$=HJ$:GOTO 14200
  541. 15960 XX$="Is "+UF$+" omitted from the N)ew command? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 15980,15980,15960,15960
  542. 15980 OC$=HJ$:GOTO 14200
  543. 15991 LOCATE 24,5:PRINT"Do you want EXTENDED logging to the 'callers' file (YES OR NO) ";:GOSUB 22380:ON AB GOTO 15992,15992,15991,15991
  544. 15992 M37$=HJ$:GOTO 15340
  545. 15993 LOCATE 24,5:PRINT"Do you want 'comments' recorded as private messages (YES OR NO) ";:GOSUB 22380:ON AB GOTO 15994,15994,15993,15993
  546. 15994 M40$=HJ$:GOTO 15340
  547. 16000 LOCATE 24,5:PRINT"Is system 'welcome' interruptable (YES OR NO) ";
  548. 16010 GOSUB 22380:ON AB GOTO 16020,16020,16000,16000
  549. 16020 M18$=HJ$:GOTO 14200
  550. 16031 LOCATE 24,5:PRINT"Seconds users can be idle before being logged off";
  551. 16032 LINE INPUT;HJ$
  552. 16033 TY=VAL(HJ$)
  553. 16034 IF TY<1 OR TY>32400 THEN GOTO 16031
  554. 16035 GOTO 14200
  555. 16040 CLS:LOCATE 5,5:PRINT "Please selecte the type of PC which RBBS-PC will be running on:":LOCATE 7,10:PRINT "0.   IBM PC, IBM XT, or IBM AT":LOCATE 9,10:PRINT "1.   Compaq/Plus or compatable that uses interrupt 7F":LOCATE 11,10:PRINT "2.   IBM PCjr
  556. 16045 LOCATE 13,10:PRINT "3.   Other compatable under IBM's DOS (i.e. PC-DOS)
  557. 16050 GOSUB 50340:LOCATE 24,5:PRINT "Select environment (0 to 3, CR to end)";:LINE INPUT;X$:IF X$="" THEN GOTO 14200 ELSE CM=VAL(X$):GOSUB 16060:IF CM=2 THEN GOTO 16071 ELSE GOTO 14200
  558. 16060 IF CM<0 OR CM>3 GOTO 16050
  559. 16062 IF CM=0 THEN M27$="IBM PC, XT, or AT
  560. 16064 IF CM=1 THEN M27$="Compaq/Plus
  561. 16066 IF CM=2 THEN M27$="PCjr
  562. 16068 IF CM=3 THEN M27$="Other under PC-DOS
  563. 16070 RETURN
  564. 16071 PCJR=0:XX$="Is an IBM PCjr Internal Modem installed? (YES or NO)":GOSUB 50345:GOSUB 22380:ON AB GOTO 16072,14200,16071,16071
  565. 16072 PCJR=1:GOTO 14200
  566. 16121 LOCATE 24,5:PRINT"Wait to issue modem commands between rings? (YES OR NO) ";
  567. 16122 GOSUB 22380:ON AB GOTO 16123,16123,16121,16121
  568. 16123 M28$=HJ$:GOTO 14200
  569. 16124 LOCATE 25,5:PRINT"Enter baud rate (300, 1200, 2400, 4800, 9600) to open modem at ";
  570. 16125 LINE INPUT;HJ$
  571. 16126 B1=VAL(HJ$)
  572. 16127 IF B1=300 OR B1=1200 OR B1=2400 OR B1=4800 OR B1=9600 THEN GOTO 16128 ELSE GOTO 16124
  573. 16128 B$=MID$(STR$(B1),2)
  574. 16129 GOTO 14200
  575. 16130 CN=5
  576. 16140 GOSUB 24800
  577. 16150 LOCATE  3,10:PRINT"81. Is the 'door' subystem available? ------------ "+M21$
  578. 16160 LOCATE  4,10:PRINT"82. The 'door' subsystem menu is named ----------- "+MK$
  579. 16170 LOCATE  5,10:PRINT"83. File RBBS builds dynamically to open a 'door'- "+CI$
  580. 16180 LOCATE  6,10:PRINT"84. When a 'door' closes, file to re-invoke RBBS - "+RB$
  581. 16185 LOCATE  7,10:PRINT"85. Drive to look for COMMAND.COM on ------------- "+M38$
  582. 16190 GOSUB 24890
  583. 16200 GOSUB 22160
  584. 16210 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,15340,16910,16230
  585. 16220 GOTO 16200
  586. 16230 GOSUB 50340
  587. 16240 IF HJ$="81" THEN GOTO 16290
  588. 16250 IF HJ$="82" THEN GOSUB 17330: MK$=SJ$+":"+HJ$:GOTO 16130
  589. 16260 IF HJ$="83" THEN GOSUB 17330: CI$=SJ$+":"+HJ$:GOTO 16130
  590. 16270 IF HJ$="84" THEN GOSUB 17330: RB$=SJ$+":"+HJ$:GOTO 16130
  591. 16275 IF HJ$="85" THEN A$="COMMAND.COM":GOSUB 13253:M38$=HJ$+":":GOTO 16130
  592. 16280 GOTO 16190
  593. 16290 XX$="Is the 'door' subsystem available? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 16310,16310,16290,16290
  594. 16310 M21$=HJ$
  595. 16320 IF M21$="NO" GOTO 16130 ELSE GOSUB 50340:LOCATE 24,1:PRINT "Will you be running RBBS-PC under MultiLink from The Software Link? ";
  596. 16330 GOSUB 22380:ON AB GOTO  16340,16350,16290,16290
  597. 16340 IA!=FNTI!+15:GOSUB 16470:GOTO 16130
  598. 16350 GOSUB 16380:GOTO 16360
  599. 16360 LOCATE 23,1:PRINT"Current Multi-Link terminal type for WINDOWS is ";MN
  600. 16370 GOSUB 50340:LOCATE 24,1:PRINT "Enter Multi-Link terminal type for WINDOWS ";:GOSUB 17420:MN=B1:IF MN <0 THEN 16370 ELSE IF MN >12 THEN GOTO 16370 ELSE GOTO 16130
  601. 16380 CLS:PRINT "Multi-Link is a software product of The Software Link, Inc.":PRINT"located at 6700 23-B Roswell Road, Atlanta, Georgia  30328.":PRINT "It allows IBM's DOS 1.1 or 2.0 or the IBM PC to be a multi-tasking
  602. 16400 PRINT "operating system.  The Capital PC User Group has no connection
  603. 16410 PRINT "whatsoever with this company or it's products.  In fact The Software":PRINT"Link has only occasionally sent updates of it's new releases to us.":PRINT"That is the reason that RBBS-PC is only supported under Release 3.02 of
  604. 16420 PRINT"Multi-Link.  I feel strongly that IBM's DOS for the PC should be":PRINT"multi-tasking.  Because Multi-Link provides this capability for the widest
  605. 16430 PRINT"ranges of DOS software for the IBM PC, RBBS-PC has been enhanced":PRINT "to run under Multi-Link.  Any questions regarding RBBS-PC under Multi-Link":PRINT"(other than Release 3.02 of Multi-Link) should be directed to The
  606. 16440 PRINT"Software Link's customer support group at (404) 998-0788.":PRINT"":PRINT"I have run RBBS-PC under Multi-Link since December 1983 -- since Multi-Link":PRINT"release 2.04.  Since Multi-Link release 2.06 I HAVE NEVER HAD A SYSTEM CRASH
  607. 16450 PRINT"due to Multi-Link.  I think it is a quality product but a bit over-priced.":PRINT "My opnion on Multi-Link's price reflects my prejudice that all PC software":PRINT"should be relatively inexpensive.":PRINT"":PRINT SPC(60);"Tom Mack
  608. 16460 PRINT SPC(60);"July 1, 1984":RETURN
  609. 16470 CLS:PRINT"                ******Warning******":PRINT"IBM's DOS absolutely REQUIRES any software package running":PRINT"as a 'door' (i.e. via a communication port) to monitor the":PRINT"communication port!  Unless the software that you invoke via
  610. 16480 PRINT"the RBBS-PC 'door' mechanism monitors the communication line,":PRINT"your system will be vulnerable to being hung -- and worse!!!":PRINT"If you don't THROUGHLY understand section 11.0 of RBBS-PC's
  611. 16490 PRINT"documentation which discusses the pitfalls of opening RBBS-PC's":PRINT"'doors' to your users, DON'T use 'doors'!!!!!
  612. 16640 IF FNTI!<IA! THEN 16640 ELSE RETURN
  613. 16650 XX$="Limit the maximum time a users can be on each day? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 16670,16670,16650,16650
  614. 16670 M26$=HJ$:GOTO 12360
  615. 16690 XX$="Remind users of # uploads and downloads? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 16710,16710,16690,16690
  616. 16710 M19$=HJ$:GOTO 14200
  617. 16722 XX$="Remind users of their terminal's profile? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 16724,16724,16722,16722
  618. 16724 M20$=HJ$:GOTO 14200
  619. 16725 XX$="Are you using a non-Hayes auto-answer only modem? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 16726,16726,16725,16725
  620. 16726 M39$=HJ$:GOTO 14200
  621. 16730 LOCATE 24,5:PRINT"Default user page length?(a value between 0 and 255)";
  622. 16740 LINE INPUT;HJ$
  623. 16750 B1=VAL(HJ$)
  624. 16760 IF B1<0 OR B1>255 THEN GOTO 16730
  625. 16770 PL=B1
  626. 16780 GOTO 14200
  627. 16790 LOCATE 24,5:PRINT"Maximum number of lines allowed per message (1->99)";
  628. 16800 LINE INPUT;HJ$
  629. 16810 B1=VAL(HJ$)
  630. 16820 IF B1<1 OR B1>99 THEN GOTO 16790
  631. 16830 LW=B1
  632. 16840 GOTO 14200
  633. 16850 LOCATE 24,5:PRINT"Security level temporarily imposed on conference 'viewers'";
  634. 16860 HJ$="V>iew
  635. 16870 GOSUB 17420:VA=B1
  636. 16900 GOTO 16910
  637. 16910 CN=6
  638. 16920 GOSUB 24800
  639. 16930 LOCATE  3,9:PRINT"101. Minimum security level to get onto RBBS ------ "STR$(ML)
  640. 16940 LOCATE  4,9:PRINT"102. Default security level for new callers ------- "STR$(DB)
  641. 16950 LOCATE  5,9:PRINT"103. Security level for SYSOP --------------------- "STR$(SB)
  642. 16960 LOCATE  6,9:PRINT"104. Files with download security are listed in ---  "+FB$
  643. 16970 LOCATE  7,9:PRINT"105. Minimum security level to see SYSOP's menu --- "STR$(SC)
  644. 16980 LOCATE  8,9:PRINT"106. Minimum security level to use RBBS-PC 'doors'  "+STR$(SD)
  645. 16990 LOCATE  9,9:PRINT"107. Max # security violations before disconnect -- "STR$(ND)
  646. 17000 M22$=STR$(SF):IX=SA(1):FOR I=2 TO 7:IF IX<>SA(I) THEN M22$="(Variable)":GOTO 17010 ELSE NEXT
  647. 17010 LOCATE 10,9:PRINT"108. Security level for SYSOP functions ----------- "M22$
  648. 17020 M23$=STR$(MM):IX=MD(1):FOR I=2 TO 21:IF IX<>MD(I) THEN M23$="(Variable)":GOTO 17030 ELSE NEXT
  649. 17030 LOCATE 11,9:PRINT"109. Security level for main menu functions ------- "M23$
  650. 17040 M24$=STR$(FC):IX=FS(1):FOR I=2 TO 10:IF IX<>FS(I) THEN M24$="(Variable)":GOTO 17050 ELSE NEXT
  651. 17050 LOCATE 12,9:PRINT"110. Security level for file menu functions ------- "M24$
  652. 17060 M25$=STR$(UE):IX=UA(1):FOR I=2 TO 16:IF IX<>UA(I) THEN M25$="(Variable)":GOTO 17070 ELSE NEXT
  653. 17070 LOCATE 13,9:PRINT"111. Security level for utilities menu functions -- "M25$
  654. 17080 LOCATE 14,9:PRINT"112. File with privileged group passwords is named-  "PD$
  655. 17090 LOCATE 15,9:PRINT"113. Max # of password changes in a session ------- "STR$(CG)
  656. 17100 LOCATE 16,9:PRINT"114. Min. security level for temp. password changes "STR$(CH)
  657. 17110 LOCATE 17,9:PRINT"115. Min. security level to overwrite on uploads -- "STR$(WC)
  658. 17115 LOCATE 18,9:PRINT"116. Security level of conference 'viewers' ------- "STR$(VA)
  659. 17116 LOCATE 19,9:PRINT"117. User's security exempted from 'packing' ------ "STR$(PC)
  660. 17120 GOSUB 24890
  661. 17130 GOSUB 22160
  662. 17140 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,16130,21550,17160
  663. 17150 GOTO 17130
  664. 17160 GOSUB 50340
  665. 17170 IF HJ$="101" THEN GOSUB 18730:GOSUB 17410:ML=B1:GOTO 16910
  666. 17180 IF HJ$="102" THEN GOSUB 18730:GOSUB 17410:DB=B1:GOTO 16910
  667. 17190 IF HJ$="103" THEN GOSUB 18730:GOSUB 17410:SB=B1:GOTO 16910
  668. 17200 IF HJ$="104" THEN GOSUB 17330:FB$=SJ$+":"+HJ$:GOTO 16910
  669. 17210 IF HJ$="105" THEN GOSUB 18730:GOSUB 17410:SC=B1:GOTO 16910
  670. 17220 IF HJ$="106" THEN GOSUB 18730:GOSUB 17410:SD=B1:GOTO 16910
  671. 17230 IF HJ$="107" THEN GOSUB 18730:GOSUB 17410:ND=B1:GOTO 16910
  672. 17240 IF HJ$="108" THEN GOTO 17460
  673. 17250 IF HJ$="109" THEN GOSUB 17460:MM=B1:GOTO 16910
  674. 17260 IF HJ$="110" THEN GOSUB 17460:FC=B1:GOTO 16910
  675. 17270 IF HJ$="111" THEN GOSUB 17460:UE=B1:GOTO 16910
  676. 17280 IF HJ$="112" THEN GOSUB 17330:PD$=SJ$+":"+HJ$:GOTO 16910
  677. 17290 IF HJ$="113" THEN GOSUB 50340:LOCATE 24,1:PRINT "Maximum number of password changes is? (0 or more)";:GOSUB 17420:CG=B1:IF B1<0 THEN 17290 ELSE 16910
  678. 17300 IF HJ$="114" THEN GOSUB 18730:GOSUB 17410:CH=B1:GOTO 16910
  679. 17310 IF HJ$="115" THEN HJ$="overwriting files on upload":GOSUB 17410:WC=B1:GOTO 16910
  680. 17315 IF HJ$="116" THEN GOTO 16850
  681. 17316 IF HJ$="117" THEN GOSUB 18730:GOSUB 17410:PC=B1:GOTO 16910
  682. 17320 GOTO 17120
  683. 17330 X$=HJ$:LOCATE 24,5:PRINT"Specify drive (A->"+M$+") where file for option "+X$+" will be located. ";
  684. 17340 LINE INPUT;HJ$
  685. 17350 IF LEN(HJ$)<>1 THEN HJ$=X$:GOTO 17330
  686. 17360 GOSUB 50654
  687. 17370 IF HJ$<"A" OR HJ$>M$ THEN HJ$=X$:GOTO 17330
  688. 17380 SJ$=HJ$
  689. 17390 GOSUB 14980
  690. 17400 RETURN
  691. 17410 GOSUB 50340:LOCATE 24,1:PRINT "Security level for "+HJ$+" is? ";
  692. 17420 LINE INPUT;HK$
  693. 17430 B1=VAL(HK$)
  694. 17440 IF B1=0 AND HK$<>"0" THEN 17410
  695. 17450 RETURN
  696. 17460 IF HJ$="108" THEN CO$="SYSOP":GOTO 18480
  697. 17470 IF HJ$="109" THEN CO$="Main Menu":GOTO 18100
  698. 17480 IF HJ$="110" THEN CO$="File System":GOTO 17820
  699. 17490 IF HJ$="111" THEN CO$="Utilities
  700. 17500 LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  701. 17510 LINE INPUT;X$
  702. 17520 IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 17500
  703. 17530 SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  704. 17540 IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 16:UA(I)=B1:NEXT:UE=B1:GOTO 16910
  705. 17550 IF X$="NO" OR X$="N" THEN GOTO 17570
  706. 17560 GOTO 17500
  707. 17570 GOSUB 25180:LOCATE 5,10:PRINT"B)aud rate                     "+STR$(UA(1)):LOCATE 6,10:PRINT"C)ase change                   "+STR$(UA(2)):LOCATE 7,10:PRINT"F)ile transfer protocol        "+STR$(UA(3))
  708. 17610 LOCATE 8,10:PRINT"G)raphics                      "+STR$(UA(4)):LOCATE 9,10:PRINT"H)elp                          "+STR$(UA(5)):LOCATE 10,10:PRINT"L)ine feeds                    "+STR$(UA(6))
  709. 17640 LOCATE 11,10:PRINT"M)sg margin                    "+STR$(UA(7)):LOCATE 12,10:PRINT"N)ulls                         "+STR$(UA(8)):LOCATE 13,10:PRINT"P)ass word                     "+STR$(UA(9))
  710. 17670 LOCATE 14,10:PRINT"Q)uit to main menu             "+STR$(UA(10)):LOCATE 15,10:PRINT"R)eview Default                "+STR$(UA(11)):LOCATE 16,10:PRINT"S)tatistics                    "+STR$(UA(12))
  711. 17690 LOCATE 17,10:PRINT"T)ime                          "+STR$(UA(13)):LOCATE 18,10:PRINT"U)serlog                       "+STR$(UA(14)):LOCATE 19,10:PRINT"X)Expert on/off                "+STR$(UA(15))
  712. 17710 LOCATE 20,10:PRINT"!)Prompt sound                 "+STR$(UA(16))
  713. 17720 GOSUB 25210:SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$:FF=INSTR("BCFGHLMNPQRSTUX!",X$):IF FF=0 THEN 17720
  714. 17790 HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  715. 17800 UA(FF)=B1
  716. 17810 GOTO 17570
  717. 17820 LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  718. 17830 LINE INPUT;X$
  719. 17840 IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 17820
  720. 17850 SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  721. 17860 IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 10:FS(I)=B1:NEXT:FC=B1:GOTO 16910
  722. 17870 IF X$="NO" OR X$="N" THEN GOTO 17890
  723. 17880 GOTO 17820
  724. 17890 GOSUB 25180:LOCATE 5,10:PRINT"D)ownload a file               "+STR$(FS(1)):LOCATE 6,10:PRINT"G)oodbye                       "+STR$(FS(2)):LOCATE 7,10:PRINT"H)elp                          "+STR$(FS(3))
  725. 17950 LOCATE 8,10:PRINT"L)ist files                    "+STR$(FS(4)):LOCATE 9,10:PRINT"N)ew files                     "+STR$(FS(5)):LOCATE 10,10:PRINT"Q)uit to main menu             "+STR$(FS(6))
  726. 17975 LOCATE 11,10:PRINT"S)earch directories for string "+STR$(FS(7)):LOCATE 12,10:PRINT"U)pload a file                 "+STR$(FS(8)):LOCATE 13,10:PRINT"X)Expert on/off                "+STR$(FS(9))
  727. 17990 LOCATE 14,10:PRINT"?) Xfer info                   "+STR$(FS(10))
  728. 18000 GOSUB 25210:SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$:FF=INSTR("DGHLNQSUX?",X$):IF FF=0 THEN 18000
  729. 18070 HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  730. 18080 FS(FF)=B1
  731. 18090 GOTO 17890
  732. 18100 LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  733. 18110 LINE INPUT;X$
  734. 18120 IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 18100
  735. 18130 SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  736. 18140 IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 21:MD(I)=B1:NEXT:MM=B1:GOTO 16910
  737. 18150 IF X$="NO" OR X$="N" THEN GOTO 18170
  738. 18160 GOTO 18100
  739. 18170 GOSUB 25180:LOCATE 3,8:PRINT"Command     Security Level":LOCATE 3,37:PRINT"   Command        Security Level":LOCATE 5,5:PRINT"B)ulletins            "+STR$(MD(1)):LOCATE 6,5:PRINT"C)omments             "+STR$(MD(2))
  740. 18220 LOCATE 7,5:PRINT"D)oor subystem        "+STR$(MD(3)):LOCATE 8,5:PRINT"E)nter message        "+STR$(MD(4)):LOCATE 9,5:PRINT"F)iles system         "+STR$(MD(5)):LOCATE 10,5:PRINT"G)oodbye              "+STR$(MD(6))
  741. 18260 LOCATE 11,5:PRINT"H)elp                 "+STR$(MD(7)):LOCATE 12,5:PRINT"I)nitial welcome      "+STR$(MD(8)):LOCATE 13,5:PRINT"J)oin a conference    "+STR$(MD(9)):LOCATE 14,5:PRINT"K)ill messages        "+STR$(MD(10))
  742. 18290 LOCATE 15,5:PRINT"L)ines per page       "+STR$(MD(11)):LOCATE 5,40:PRINT"O)perator             "+STR$(MD(12)):LOCATE 6,40:PRINT"P)ersonal mail        "+STR$(MD(13)):LOCATE 7,40:PRINT"Q)uick scan           "+STR$(MD(14))
  743. 18330 LOCATE 8,40:PRINT"R)ead messages        "+STR$(MD(15)):LOCATE 9,40:PRINT"S)can messages        "+STR$(MD(16)):LOCATE 10,40:PRINT"U)tilities (more)     "+STR$(MD(17)):LOCATE 11,40:PRINT"V)iew a conference    "+STR$(MD(18))
  744. 18357 LOCATE 12,40:PRINT"W)ho's on other nodes "+STR$(MD(19)):LOCATE 13,40:PRINT"X)Expert on/off       "+STR$(MD(20)):LOCATE 14,40:PRINT"?)Functions           "+STR$(MD(21))
  745. 18380 GOSUB 25210:SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$:FF=INSTR("BCDEFGHIJKLOPQRSUVWX?",X$):IF FF=0 THEN 18380
  746. 18450 HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  747. 18460 MD(FF)=B1
  748. 18470 GOTO 18170
  749. 18480 LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  750. 18490 LINE INPUT;X$
  751. 18500 IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 18480
  752. 18510 SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  753. 18520 IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 7:SA(I)=B1:NEXT:SF=B1:GOTO 16910
  754. 18530 IF X$="NO" OR X$="N" THEN GOTO 18550
  755. 18540 GOTO 18480
  756. 18550 GOSUB 25180:LOCATE 5,10:PRINT" 1 List comments               "+STR$(SA(1)):LOCATE 6,10:PRINT" 2 List callers log            "+STR$(SA(2)):LOCATE 7,10:PRINT" 3 Recover a Msg               "+STR$(SA(3))
  757. 18610 LOCATE 8,10:PRINT" 4 Erase comments              "+STR$(SA(4)):LOCATE 9,10:PRINT" 5 Users maintenance           "+STR$(SA(5)):LOCATE 10,10:PRINT" 6 Toggle page bell            "+STR$(SA(6))
  758. 18650 LOCATE 11,10:PRINT" 7 Exit to DOS 2               "+STR$(SA(7))
  759. 18670 GOSUB 25210:IF VAL(X$)<1 OR VAL(X$)>7 THEN 18670
  760. 18700 HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  761. 18710 SA(VAL(X$))=B1
  762. 18720 GOTO 18550
  763. 18730 HJ$="option "+HJ$:RETURN
  764. 18740 GOSUB 50340:IF M5$="NOVICE" THEN XPR=0
  765. 18750 IF M5$="EXPERT" THEN XPR=-1
  766. 18760 FD$=M7$+M6$
  767. 18770 BE=-1:IF M10$="OFF" THEN BE=0
  768. 18772 MW$=". ":IF M11$="YES" THEN MW$=". "+CHR$(7)
  769. 18774 CL=FA:IF M12$="COMPILED" THEN CL=TA
  770. 18776 MID$(SG$,4,1)="1":IF M14$="OFF" THEN MID$(SG$,4,1)="0"
  771. 18778 OD=FA:IF M15$="YES" THEN OD=TA
  772. 18780 RC=FA:IF M16$="YES" THEN RC=TA
  773. 18782 BF=FA:IF M17$="YES" THEN BF=TA
  774. 18784 OA=FA:IF M18$="YES" THEN OA=TA
  775. 18786 UD=FA:IF M19$="YES" THEN UD=TA
  776. 18788 CK=FA:IF M20$="YES" THEN CK=TA
  777. 18790 WB=FA:IF M21$="YES" THEN WB=TA
  778. 18792 M26=FA:IF M26$="YES" THEN M26=TA
  779. 18794 M28=FA:IF M28$="YES" THEN M28=TA
  780. 18796 M29=FA:IF M29$="YES" THEN M29=TA
  781. 18799 M30=FA:IF M30$="YES" THEN M30=TA
  782. 18801 M31=FA:IF M31$="YES" THEN M31=TA
  783. 18803 M32=FA:IF M32$="YES" THEN M32=TA
  784. 18805 M34=FA:IF M34$="YES" THEN M34=TA
  785. 18806 IF M34$="YES=Registered users" THEN M34=-2
  786. 18807 M35=FA:IF M35$="YES" THEN M35=TA
  787. 18809 M36=FA:IF M36$="YES" THEN M36=TA
  788. 18811 M37=FA:IF M37$="YES" THEN M37=TA
  789. 18813 M39=FA:IF M39$="YES" THEN M39=TA
  790. 18814 M40=FA:IF M40$="YES" THEN M40=TA
  791. 18989 IF ME$<>MAINMSG$ THEN ME$=MAINMSG$
  792. 18990 IF UC$<>MAINUSR$ THEN UC$=MAINUSR$
  793. 18998 IF F THEN GOSUB 30040
  794. 18999 OPEN "O",#1,CA$
  795. 19010 IF INSTR(MO$,":")<1 THEN MO$=MO$+":
  796. 19020 IF INSTR(SJ$,":")<1 THEN SJ$=SJ$+":
  797. 19030 IF INSTR(TB$,":")<1 THEN TB$=TB$+":
  798. 19031 IF INSTR(BD$,":")<1 THEN BD$=BD$+":
  799. 19032 T$=DIR$:IF INSTR(DIR$,".") THEN T$=MID$(DIR$,INSTR(DIR$,".")+1,LEN(DIR$))
  800. 19033 S$=UF$:IF INSTR(UF$,".") THEN S$=MID$(UF$,1,INSTR(UF$,".")-1)
  801. 19034 DIR$=T$
  802. 19035 UF$=S$
  803. 19036 IF M32$="NO" THEN DNLD.SUB=0:FOR I=1 TO 99:DNLD$(I)="":NEXT
  804. 19037 IF M31$="NO" THEN M33$=M6$+":"
  805. 19038 IF M31$="YES" AND M33$<>"" THEN M6$=M33$
  806. 19040 WRITE #1,FD$,PA$,PB$,NB$,NC$,CE,AC,AD,TC!,MP,LA,UF$,XPR,BG,BE,PCJR,CL,MG$,MH$,MI$,MJ$,MK$,CD$,VA,OA,UD,PL,LW,WB,MO$
  807. 19050 IF INSTR(BA$,":")<1 THEN BA$=BD$+BA$
  808. 19060 IF INSTR(BB$,":")<1 THEN BB$=BD$+BB$
  809. 19070 FOR I=1 TO 9
  810. 19080 HA$(I)=HB$+":"+HA$+RIGHT$(STR$(I),1)
  811. 19090 NEXT
  812. 19100 MD(6)=ML:FS(2)=ML
  813. 19110 WRITE #1,ME$,MF$,CB$,CC$,UC$,WA$,NA$,DIR$,M13$,OD,SG$,TB$,DA,FGR,BGR,BDR,RB$,CI$
  814. 19120 WRITE #1,OB$,OC$,HA$(1),HA$(2),HA$(3),HA$(4),HA$(5),HA$(6),HA$(7),HA$(8),HA$(9),BA$,BB$,BD$,RC,BF,SD,MC,SE,CF,UB,MQ!,BC$
  815. 19130 WRITE #1,ML,DB,SB,FB$,SC,KA$,ND,SA(1),SA(2),SA(3),SA(4),SA(5),SA(6),SA(7),PD$,CG,CH,WC,MN,M26
  816. 19140 WRITE #1,MD(1),MD(2),MD(3),MD(4),MD(5),MD(6),MD(7),MD(8),MD(9),MD(10),MD(11),MD(12),MD(13),MD(14),MD(15),MD(16),MD(17),MD(18),MD(19),MD(20),MD(21),SY$,TY
  817. 19150 WRITE #1,FS(1),FS(2),FS(3),FS(4),FS(5),FS(6),FS(7),FS(8),FS(9),FS(10),UA(1),UA(2),UA(3),UA(4),UA(5),UA(6),UA(7),UA(8),UA(9),UA(10),UA(11),UA(12),UA(13),UA(14),UA(15),UA(16),UPX!,CM,CK,FF$,M28,M29,MW$,B$
  818. 19159 IF M13$="COM1" THEN LSB=&H3F8:MSB=&H3F9:LCR=&H3FB:MCR=&H3FC:LSR=&H3FD:MSR=&H3FE
  819. 19160 IF M13$="COM2" OR PCJR=1 THEN LSB=&H2F8:MSB=&H2F9:LCR=&H2FB:MCR=&H2FC:LSR=&H2FD:MSR=&H2FE
  820. 19161 WRITE #1,SK$,SM1$,SM2$,SM3$,SM4$,SM5$,SM6$,SM7$,SM8$,SM9$,SH$,SI$,PC
  821. 19162 WRITE #1,DNLD.SUB,M30,M31,M32,M33$,M34,M35,M36,M37,M1$,M2$,M3$,M4$,M38$,M39,M40,LSB,MSB,LCR,MCR,LSR,MSR
  822. 19165 IF DNLD.SUB<1 OR DNLD.SUB>99 THEN GOTO 19170 ELSE FOR I=1 TO DNLD.SUB:WRITE #1,DNLD$(I):NEXT
  823. 19170 CLOSE #1
  824. 19175 CLS:LOCATE 12,1,1:PRINT "RBBS-PC configuration description file, "+CA$+", now on default drive.":GOSUB 60380
  825. 19179 GOTO 60340
  826. 21550 CN=7
  827. 21560 GOSUB 30040
  828. 21565 UB=IG:MQ!=IH:MP=IM
  829. 21570 GOSUB 24800
  830. 21580 LOCATE  3,9:PRINT"121. Maximum number of concurrent RBBS-PC's  -------"STR$(MC)
  831. 21590 IF MC=1 THEN MT$="single RBBS-PC copy " ELSE MT$="concurrent RBBS-PC's":GOSUB 21900:IF SE<0 OR SE>4 THEN GOTO 21810
  832. 21600 LOCATE  4,9:PRINT"122. Environment running "+MT$+" ------ "+EA$
  833. 21610 LOCATE  5,9:PRINT"123. RBBS-PC 'recycle' method when users log off --- "+RA$
  834. 21615 FILE$=ME$:GOSUB 30180:MQ!=UG
  835. 21620 LOCATE  6,9:PRINT"124. Number of records in the "+UC$+" file ";STRING$(16-LEN(UC$),"-");STR$(UB)
  836. 21630 LOCATE  7,9:PRINT"125. Number of records in "+ME$+" file ";STRING$(20-LEN(ME$),"-");STR$(MQ!)
  837. 21635 LOCATE  8,9:PRINT"126. Maximum number of messages allowed ------------"STR$(MP)
  838. 21636 LOCATE  9,9:PRINT"127. Conference File Maintenance.
  839. 21640 GOSUB 24890
  840. 21650 GOSUB 22160
  841. 21660 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,16910,23000,21680
  842. 21670 GOTO 21650
  843. 21680 GOSUB 50340
  844. 21690 IF HJ$="121" THEN GOTO 21750
  845. 21700 IF HJ$="122" THEN GOTO 21810
  846. 21710 IF HJ$="123" THEN GOTO 21950
  847. 21720 IF HJ$="125" THEN GOSUB 22040:GOTO 21550
  848. 21730 IF HJ$="124" THEN IF F=2 THEN GOSUB 22560:GOTO 21550 ELSE GOSUB 22100:GOTO 21550
  849. 21735 IF HJ$="126" THEN GOTO 13890
  850. 21736 IF HJ$="127" THEN GOTO 25040
  851. 21740 GOTO 21640
  852. 21750 GOSUB 50340:LOCATE 24,5:PRINT"Maximum number of conurrent RBBS-PC's? (a value between 1 and 36)";
  853. 21760 LINE INPUT;HJ$
  854. 21770 B1=VAL(HJ$)
  855. 21780 IF B1<1 OR B1>36 THEN GOTO 21750
  856. 21790 IF MC=B1 THEN GOTO 21550
  857. 21795 B3!=MQ!:GOSUB 30610
  858. 21800 GOTO 21550
  859. 21810 CLS:LOCATE 3,5:PRINT"RBBS-PC is supported in the following:":LOCATE 5,20:PRINT"Environment":LOCATE 7,10:PRINT"0. Single RBBS-PC in an IBM DOS environment":LOCATE 9,10:PRINT"1. MultiLink (multi-tasking under single DOS)
  860. 21840 LOCATE 11,10:PRINT"2. Omninet (CORVUS)":LOCATE 13,10:PRINT"3. PC-NET (Orchid)":LOCATE 15,10:PRINT"4. Top-View (IBM's multi-tasking for DOS 3.1) -- not yet supported
  861. 21870 GOSUB 50340:LOCATE 24,5:PRINT"Select environment (0 to 4, CR to end)";:LINE INPUT;X$:IF X$=""THEN 21550 ELSE SE=VAL(X$):GOSUB 21890:GOTO 21550
  862. 21890 IF SE<0 OR SE>4 GOTO 21870
  863. 21895 IF SE=0 THEN EA$="IBM's DOS
  864. 21900 IF SE=1 THEN EA$="MultiLink
  865. 21910 IF SE=2 THEN EA$="Omninet
  866. 21920 IF SE=3 THEN EA$="PC-NET
  867. 21930 IF SE=4 THEN EA$="Top-View -- future
  868. 21940 RETURN
  869. 21950 GOSUB 50340:LOCATE 24,5:PRINT"How RBBS-PC recycles when users logs off (SYSTEM or INTERNAL)? ";
  870. 21960 LINE INPUT;HJ$
  871. 21970 IF LEN(HJ$)<1 OR LEN(HJ$)>8 THEN GOTO 21950
  872. 21980 GOSUB 50654
  873. 21990 IF HJ$="SYSTEM" THEN CF=1:GOTO 22020
  874. 22000 IF HJ$="INTERNAL" THEN CF=0:GOTO 22020
  875. 22010 GOTO 21950
  876. 22020 RA$=HJ$
  877. 22030 GOTO 21550
  878. 22040 GOSUB 50340:LOCATE 24,5:PRINT"Max. records in preformatted "+ME$+" file (>"+STR$(5*MP+1+MC)+"):";
  879. 22050 LINE INPUT;HJ$
  880. 22060 B3!=VAL(HJ$)
  881. 22070 IF B3!<=(5*MP+1+MC) OR B3!>9999999! THEN GOTO 22040
  882. 22080 B1=MC:GOSUB 30610:MQ!=B3!
  883. 22090 RETURN
  884. 22100 GOSUB 50340:LOCATE 24,5:FF=IE:IF FF>1 THEN FF=FF-1
  885. 22105 GOSUB 50340:LOCATE 24,5:PRINT STR$(FF)+" of"+STR$(IG)+" records used. Enter new maximum number of records for "+UC$+":";
  886. 22110 LINE INPUT;HJ$
  887. 22120 B1=VAL(HJ$)
  888. 22130 IF B1<1 OR B1>99999! OR B1<FF THEN GOTO 22100
  889. 22140 B2=2:WHILE B2<B1:B2=B2*2:WEND:IF UB=B2 THEN RETURN
  890. 22142 XX$="Change "+UC$+" file to"+STR$(B2)+" records? (YES or NO)":GOSUB 50345:GOSUB 22380:ON AB GOTO 22100,22150,22100,22100
  891. 22150 UB=B2:D.FLAG=-1:GOSUB 24110:IB=1:UB=B2:IG=B2:GOSUB 30450:GOSUB 50340:RETURN
  892. 22160 I!=FRE(C$):Y$=INKEY$
  893. 22170 IX=0
  894. 22180 IF LEN(Y$)<1 THEN GOTO 22160
  895. 22190 IF LEN(Y$)=2 THEN GOTO 22240
  896. 22200 IF ASC(Y$)=13 THEN IX=13:RETURN
  897. 22205 IF ASC(Y$)=8 AND LEN(HJ$)>0 THEN HJ$=LEFT$(HJ$,LEN(HJ$)-1):PRINT CHR$(29)+" "+CHR$(29);:GOTO 22160
  898. 22206 IF ASC(Y$)<48 OR ASC(Y$)>57 THEN 22160
  899. 22210 PRINT Y$;
  900. 22220 HJ$=HJ$+Y$:IF LEN(HJ$)>4 THEN IX=13
  901. 22230 RETURN
  902. 22240 IX=ASC(RIGHT$(Y$,1))
  903. 22250 Y$="
  904. 22260 IF IX<59 OR IX>81 THEN RETURN
  905. 22270 IX=IX-58
  906. 22280 IF IX<10 THEN RETURN
  907. 22290 IF IX=15 THEN IX=11:RETURN
  908. 22300 IF IX=21 THEN IX=10:RETURN
  909. 22310 IF IX=23 THEN IX=12:RETURN
  910. 22320 IX=0
  911. 22330 RETURN
  912. 22340 LOCATE 22,15:PRINT SPC(64);:LOCATE 22,15:PRINT TIME$;" ";:COLOR 0,7:PRINT " Reading Data, Wait a sec !!! ";:COLOR FGR,BGR,BDR:RETURN
  913. 22350 GOSUB 50340
  914. 22360 XX$="Are you satisfied with all changes ? (Y/N) or <Q)uit ":GOSUB 50345:GOSUB 22380:ON AB GOTO 12190,18740,60360,22350
  915. 22380 LINE INPUT;HJ$
  916. 22390 IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 22470
  917. 22400 GOSUB 50654
  918. 22410 IF HJ$="NO" THEN AB=1:RETURN
  919. 22420 IF HJ$="N" THEN HJ$="NO":AB=1:RETURN
  920. 22430 IF HJ$="YES" THEN AB=2:RETURN
  921. 22440 IF HJ$="Y" THEN HJ$="YES":AB=2:RETURN
  922. 22450 IF HJ$="QUIT" THEN AB=3:RETURN
  923. 22460 IF HJ$="Q" THEN AB=3:RETURN
  924. 22470 AB=4:RETURN
  925. 22480 GOSUB 50340:LOCATE 24,5:PRINT"To which copy of RBBS-PC will these options apply (1 to 36)?";
  926. 22490 LINE INPUT;HJ$
  927. 22500 IF LEN(HJ$)<1 OR LEN(HJ$)>2 THEN GOTO 22480
  928. 22510 IF VAL(HJ$)<1 OR VAL(HJ$)>36 THEN GOTO 22480
  929. 22520 MID$(CA$,5,1)=MID$("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ",VAL(HJ$),1)
  930. 22530 RETURN
  931. 22560 GOSUB 50340:LOCATE 24,5:PRINT "Option "+HJ$+" unavailable when maintaining a public conference!";
  932. 22570 IA!=FNTI!+5:GOSUB 60440:RETURN
  933. 23000 CN=8
  934. 23010 GOSUB 24800:RB=0
  935. 23020 LOCATE  3,9:PRINT"141. Pack "+ME$+" file.
  936. 23030 LOCATE  4,9:PRINT"142. Rebuild "+UC$+" file.
  937. 23040 LOCATE  5,9:PRINT"143. Print "+ME$+" 'header' records.
  938. 23050 LOCATE  6,9:PRINT"144. Renumber messages in "+ME$+" file.
  939. 23055 LOCATE  7,9:PRINT"145. Repair messages in "+ME$+" file.
  940. 23056 LOCATE  8,9:PRINT"146. Initialize Hayes 2400 firmware for RBBS-PC.
  941. 23060 A$="Enter number of utility function, END to terminate, PgUp/PgDn to scroll.":GOSUB 24900
  942. 23070 GOSUB 22160
  943. 23080 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,25220,22350,21550,25220,23100
  944. 23090 GOTO 23070
  945. 23100 GOSUB 50340
  946. 23110 IF HJ$="141" THEN GOTO 23160
  947. 23120 IF HJ$="142" THEN IF F=2 THEN GOSUB 22560:GOTO 23000 ELSE D.FLAG=0:GOSUB 24110:GOTO 23000
  948. 23130 IF HJ$="143" THEN SK=0:GOTO 23630
  949. 23140 IF HJ$="144" THEN GOTO 23740
  950. 23145 IF HJ$="145" THEN RB=1:SK=0:GOTO 23630
  951. 23146 IF HJ$="146" THEN GOSUB 23731:GOTO 23000
  952. 23150 GOTO 23060
  953. 23160 B1=MC:B3!=IH:PURGE=-1:GOSUB 30610:GOTO 23000
  954. 23610 I=LOC(1)+VAL(MID$(R$,118,6)) -1 
  955. 23620 RETURN
  956. 23630 GOSUB 30040              ' <----Print message headers
  957. 23640 OPEN "R",1,ME$
  958. 23650 FIELD 1,128 AS R$
  959. 23670 FOR I=IJ TO II-1
  960. 23680   GET 1,I
  961. 23684   IF VAL(MID$(R$,118,6))>0 AND SK<VAL(MID$(R$,2,4)) THEN SK=VAL(MID$(R$,2,4)):GOSUB 23610 ELSE GOTO 23725
  962. 23686   I$="K":IF MID$(R$,116,1)=CHR$(225) THEN I$="A
  963. 23715   IF LOC(1)>II-1 THEN GOTO 23730
  964. 23717   PRINT LEFT$(R$,5)+" "+MID$(R$,76,25)+" "+MID$(R$,101,15)+" "+I$+" "+MID$(R$,118,6)+" "+STR$(LOC(1))+" " +STR$(I):SK=VAL(MID$(R$,2,4))
  965. 23720   IF RB AND VAL(MID$(R$,2,4))=IO THEN GOTO 23730
  966. 23722   IF RB THEN GOSUB 50580
  967. 23725 NEXT
  968. 23730 GET 1,1:MID$(R$,1,8)=SPACE$(8):MID$(R$,1,8)=STR$(SK):PUT 1,1:CLOSE 1:IA!=FNTI!+5:GOSUB 60440:GOTO 23000
  969. 23731 LOCATE 25,5:PRINT "Setting Hayes 2400 firmware switches for RBBS-PC on "+M13$;:IA!=FNTI!+3:GOSUB 60440
  970. 23732 A$="AT&C1&D2B1E0V1M0S0="+MID$(STR$(VAL(MID$(SG$,24,3))),2,3):LOCATE 25,5:PRINT SPACE$(74);:LOCATE 25,5:PRINT "Prevent remote digitial loop back tests? ";:GOSUB 22380:ON AB GOTO 23734,23733,23732,23732
  971. 23733 A$=A$+"&T5"
  972. 23734 OPEN M13$+":2400,N,8,1,RS,CD,DS" AS #3: PRINT #3,"ATZ":IA!=FNTI!+3:GOSUB 60440:PRINT #3,A$+"&W":GOSUB 60440
  973. 23735 A$="ATS0=0":LOCATE 25,5:PRINT SPACE$(74);:LOCATE 25,5:PRINT "Force auto-answer off? (i.e. let RBBS-PC turn auto-answer on)";:GOSUB 22380:ON AB GOTO 23739,23736,23735,23735
  974. 23736 GOSUB 60440:PRINT #3,A$+"&W":GOSUB 60440
  975. 23739 CLOSE #3:LOCATE 25,5:PRINT SPACE$(74);:LOCATE 25,5:PRINT "Hayes 2400 firmware switches are now set for RBBS-PC on "+M13$;:IA!=FNTI!+3:GOSUB 60440:RETURN
  976. 23740 GOSUB 30040
  977. 23750 GOSUB 50340:LOCATE 24,5:PRINT"Renumber starting with OLD message # (<"+STR$(IO+1)+")";
  978. 23760 LINE INPUT;HJ$
  979. 23770 IF HJ$="" THEN GOTO 23000
  980. 23780 B1=VAL(HJ$)
  981. 23790 IF B1<1 OR B1>IO THEN GOTO 23750
  982. 23800 RE=B1
  983. 23810 GOSUB 50340:LOCATE 24,5:PRINT"Renumber starting with NEW message # ";
  984. 23820 LINE INPUT;HJ$
  985. 23830 IF HJ$="" THEN GOTO 23000
  986. 23840 B1=VAL(HJ$)
  987. 23850 IF B1<1 OR B1>9999 THEN GOTO 23810
  988. 23860 NE=B1-1
  989. 23870 OPEN "R",1,ME$
  990. 23880 FIELD 1,128 AS R$
  991. 23890 GOSUB 50340
  992. 23910 FOR I = IJ TO II-1
  993. 23920   GET 1,I
  994. 23930   IF INSTR(R$,CHR$(225)) OR INSTR(R$,CHR$(226)) THEN GOSUB 24010:GOSUB 23610
  995. 23940 NEXT
  996. 23942 GET 1,1
  997. 23944 MID$(R$,1,8)=SPACE$(8) ' Update the checkpoint record with the
  998. 23946 MID$(R$,1,8)=STR$(NE)  ' 1- 8 = number of last message on system
  999. 23947 PUT 1,1
  1000. 23950 CLOSE 1
  1001. 23980 IA!=FNTI!+1
  1002. 23990 GOSUB 60440
  1003. 24000 GOTO 23000
  1004. 24010 LOCATE 24,15
  1005. 24020 PRINT "Msg #"+MID$(R$,1,5);
  1006. 24030 IF VAL(MID$(R$,2,4))<RE THEN PRINT " read";:RETURN
  1007. 24040 Y$=MID$(R$,1,1)
  1008. 24045 MID$(R$,1,5)=SPACE$(5)
  1009. 24046 NE=NE+1
  1010. 24050 MID$(R$,1,5)=STR$(NE)
  1011. 24060 MID$(R$,1,1)=Y$
  1012. 24070 PRINT " renumbered as Msg #"+MID$(R$,1,5)
  1013. 24090 PUT 1,I
  1014. 24100 RETURN
  1015. 24110 GOSUB 30040
  1016. 24119 OPEN "R",1,UC$,128
  1017. 24120 FIELD 1,31 AS O.N$,15 AS OG$,2 AS OH$,14 AS OI$,24 AS OJ$,19 AS OL$,14 AS OM$,3 AS OO$,2 AS OQ$,2 AS OS$,2 AS OT$
  1018. 24130 GOSUB 50350:A$=F$:GOSUB 50095:OPEN "R",2,A$,128
  1019. 24140 FIELD 2,31 AS N$,15 AS PW$,2 AS SL$,14 AS OP$,24 AS CS$,19 AS MA$,14 AS TD$,3 AS LND$,2 AS UDL$,2 AS UUL$,2 AS ET$
  1020. 24150 NOW=VAL(LEFT$(DATE$,2))
  1021. 24180 GOSUB 50340:A!=0:GOSUB 50840
  1022. 24190 A!=IG:IE=1
  1023. 24200 FOR J = 1 TO A!
  1024. 24210   GET 1
  1025. 24220   IF ASC(O.N$)=0 OR MID$(O.N$,1,7)="NEWUSER" OR MID$(O.N$,1,7)="       " OR MID$(O.N$,1,12)="deleted user" THEN A$="":GOTO 24430
  1026. 24225   IF D.FLAG THEN 24290
  1027. 24230   OF=CVI(OH$)
  1028. 24240   IF OF=>PC THEN 24290      ' copy users exempt from purges
  1029. 24250   IF OF<=ML THEN 24290      ' copy "locked-out" users
  1030. 24260   OU=VAL(LEFT$(OM$,2))
  1031. 24270   LQ=NOW-OU
  1032. 24280   IF LQ<0 THEN LQ=LQ+12
  1033. 24285   IF LQ>LA THEN A$="(Last on "+OM$+")":GOTO 24430 'Purge inactive users
  1034. 24290   PRINT STR$(LOC(1))+": "+O.N$+" copied .... ";
  1035. 24300   GOSUB 50720:GOTO 24450
  1036. 24430   PRINT STR$(LOC(1))+": "+O.N$+"        purged... "+A$
  1037. 24450 NEXT
  1038. 24650 CLOSE 1,2
  1039. 24660 UB=IG
  1040. 24670 GOSUB 30450
  1041. 24730 XX$="Delete the old "+UC$+" file? (YES or NO)?":GOSUB 50345:GOSUB 22380:ON AB GOTO 24750,24770,24730,24730
  1042. 24750 A$=UC$:GOSUB 50096:NAME UC$ AS A$
  1043. 24760 GOTO 24780
  1044. 24770 KILL UC$
  1045. 24780 GOSUB 50350:A$=F$:GOSUB 50095:NAME A$ AS UC$
  1046. 24790 RETURN
  1047. 24800 CLS
  1048. 24810 I!=FRE(C$)
  1049. 24820 COLOR 0,7,0
  1050. 24830 LOCATE 1,10
  1051. 24840 PRINT"RBBS-PC CPC14.1 Default Configuration "+VER$;:IF F THEN GOSUB 24970
  1052. 24850 COLOR FGR,BGR,BDR
  1053. 24860 LOCATE 1,68
  1054. 24870 PRINT"Page "+STR$(CN)+" of "+STR$(MB)
  1055. 24880 RETURN
  1056. 24890 A$="Enter parameter number to change, END to update, PgUp/PgDn to scroll.
  1057. 24900 LOCATE 24,1
  1058. 24910 PRINT A$;
  1059. 24920 PRINT STRING$((79-LEN(A$)),32);
  1060. 24930 LOCATE 24,LEN(A$)+1
  1061. 24940 COLOR FGR,BGR,BDR:HJ$="
  1062. 24950 I!=FRE(C$)
  1063. 24960 RETURN
  1064. 24970 LOCATE 2,10:A$="Private":IF F=2 THEN A$="Public"
  1065. 24980 COLOR 31,0,0:PRINT "("+A$+" Conference Maintenance Mode for "+MID$(ME$,1,INSTR(ME$,"M.DEF")-1)+")":COLOR FGR,BGR,BDR:RETURN
  1066. 25020 LOCATE 24,5:PRINT A$" record"+STR$(LOC(2))+" of "+UC$+" file.";:RETURN
  1067. 25030 IF PURGE THEN RETURN ELSE LOCATE 24,5:PRINT A$" record"+STR$(LOC(2))+" of "+ME$+" file.";:RETURN
  1068. 25040 GOSUB 50340
  1069. 25041 IF F=0 THEN GOTO 25050
  1070. 25042 XX$="End conference maintenance? (YES or NO)":GOSUB 50345:GOSUB 22380:ON AB GOTO 25050,25044,25142,25142
  1071. 25044 ME$=MAINMSG$
  1072. 25045 UC$=MAINUSR$
  1073. 25046 GOTO 12151
  1074. 25050 LOCATE 24,5:PRINT "Enter the name of the conference (seven characters or less) ";
  1075. 25060 LINE INPUT;HJ$
  1076. 25070 IF LEN(HJ$)<1 OR LEN(HJ$)>7 THEN GOTO 25040
  1077. 25075 GOSUB 50654:CP$=HJ$
  1078. 25080 GOSUB 50340
  1079. 25090 LOCATE 24,5:PRINT "Specify drive (A->"+M$+") containing this conference's files. ";
  1080. 25100 LINE INPUT;HJ$
  1081. 25110 IF LEN(HJ$)<>1 THEN GOTO 25080
  1082. 25112 GOSUB 50654
  1083. 25114 IF HJ$<"A" OR HJ$>M$ THEN GOTO 25090
  1084. 25120 CP$=HJ$+":"+CP$
  1085. 25140 ME$=CP$+"M.DEF
  1086. 25141 GOSUB 50340
  1087. 25142 XX$="Is this a private conference? (YES or NO)":GOSUB 50345:GOSUB 22380:ON AB GOTO 25144,25160,25141,25141
  1088. 25144 F=2:GOTO 12160
  1089. 25160 F=1:UG=0:UC$=CP$+"U.DEF":GOTO 12160
  1090. 25180 CLS:I!=FRE(C$):COLOR 0,7,0:LOCATE 1,23:PRINT"RBBS-PC CPC14.1 Default Configuration";:COLOR FGR,BGR,BDR
  1091. 25190 LOCATE  2,5:PRINT"The RBBS-PC "+CO$+" Commands are as follows:
  1092. 25200 LOCATE   3,8:PRINT"Command                       Security Level":RETURN
  1093. 25210 LOCATE 24,5:PRINT"Enter first character of command (CR to end)";:LINE INPUT;X$:IF X$="" THEN RETURN 16910 ELSE RETURN
  1094. 25220 CN=9
  1095. 25230 GOSUB 24800
  1096. 25240 LOCATE  3,10:PRINT"161. Will you be using DOS sub-directories? ------ "+M30$
  1097. 25250 LOCATE  4,10:PRINT"162. Upload to a DOS sub-directory? -------------- "+M31$
  1098. 25260 LOCATE  5,10:PRINT"163. Are downloads from DOS sub-directories? ----- "+M32$
  1099. 25262 IF M30$<>"YES" THEN GOTO 25280
  1100. 25264 LOCATE  6,10:PRINT"164. List, change, add, delete sub-directories."
  1101. 25280 GOSUB 24890
  1102. 25290 GOSUB 22160
  1103. 25300 IF IX THEN ON IX GOTO 12360,14200,14570,15340,25220,16910,21550,23000,25220,22350,23000,12190,25320
  1104. 25310 GOTO 25290
  1105. 25320 GOSUB 50340
  1106. 25330 IF HJ$="161" THEN GOTO 25380
  1107. 25335 IF M30$="NO" THEN GOTO 25400
  1108. 25340 IF HJ$="162" THEN GOTO 25420
  1109. 25350 IF HJ$="163" THEN GOTO 25460
  1110. 25360 IF HJ$="164" THEN GOTO 25495
  1111. 25370 GOTO 25280
  1112. 25380 XX$="Will you be using DOS sub-directories? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 25400,25410,25380,25380
  1113. 25400 M30$="NO":M31$=M30$:M32$=M30$:GOTO 25220
  1114. 25410 M30$="YES":GOTO 25220
  1115. 25420 XX$="Are uploads to a DOS sub-directory? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 25440,25450,25420,25420
  1116. 25440 M31$="NO":GOTO 25220
  1117. 25450 M31$="YES":GOTO 25220
  1118. 25460 XX$="Are downloads from DOS sub-directories? (YES or NO) ":GOSUB 50345:GOSUB 22380:ON AB GOTO 25480,25490,25460,25460
  1119. 25480 M32$="NO":GOTO 25220
  1120. 25490 M32$="YES":GOTO 25220
  1121. 25495 IF M31$="NO" THEN GOTO 25497 ELSE GOSUB 31060:A$="upload":PRINT"Change "+A$" DOS sub-directory? (YES or NO) ";
  1122. 25496 GOSUB 22380:ON AB GOTO 25497,25500,25495,25495
  1123. 25497 IF M32$="NO" THEN GOTO 25220 ELSE GOSUB 31060:A$="download":PRINT"List, change, add, delete "+A$" DOS sub-directories? (YES or NO) ";
  1124. 25498 GOSUB 22380:ON AB GOTO 25220,25505,25497,25497
  1125. 25500 IF M33$="" THEN GOTO 25502
  1126. 25501 LOCATE 23,5:PRINT SPC(74):LOCATE 23,5:PRINT"Current "+A$" DOS sub-directory name is "+M33$;
  1127. 25502 GOSUB 25850:IF LEN(HJ$)<1 THEN GOTO 25505
  1128. 25503 IF M6$=MID$(X$,1,1) THEN SWAP M33$,X$:IF X$="" THEN GOTO 25501 ELSE GOTO 25505
  1129. 25504 GOTO 25502
  1130. 25505 IF M32$="NO" THEN GOTO 25220 ELSE LOCATE 23,5:PRINT SPC(74):LOCATE 23,5:PRINT STR$(DNLD.SUB)+" of 99 download subdirectories designated.";
  1131. 25510 GOSUB 31060:PRINT"L>ist, C>hange, A>dd, D>elete "+A$" DOS sub-directories? (CR ends) ";
  1132. 25520 LINE INPUT;HJ$:
  1133. 25530 GOSUB 50654
  1134. 25560 IF LEN(HJ$)<1 GOTO 25220
  1135. 25565 IF LEN(HJ$)<>1 GOTO 25505
  1136. 25570 FF=INSTR("LCAD",HJ$)
  1137. 25580 IF FF=0 THEN GOTO 25510
  1138. 25585 IF DNLD.SUB=0 AND FF<>3 THEN GOTO 25510
  1139. 25590 ON FF GOSUB 25610,25670,25730,25670
  1140. 25600 GOTO 25505
  1141. 25610 LAST=(DNLD.SUB/16)+1:INCR=1:FOR IX=1 TO LAST:GOSUB 24800:LOCATE 4,1:PRINT"DOS sub-directories from which downloads are done:";:INDEX=4:FOR I=1 TO 16:LOCATE INDEX+I,1:PRINT DNLD$(INCR);:INCR=INCR+1:IF INCR>DNLD.SUB GOTO 25668
  1142. 25634 NEXT
  1143. 25636 XX$="More (YES or NO)":GOSUB 50345:GOSUB 22380:ON AB GOTO 25668,25644,25636,25636
  1144. 25644 NEXT
  1145. 25668 GOTO 25505
  1146. 25670 GOSUB 25850:IF LEN(HJ$)<1 THEN GOTO 25505
  1147. 25675 GOSUB 26030:A$=" not found!":IF X$="" THEN GOTO 25682
  1148. 25680 FOR I=1 TO DNLD.SUB:IF X$=DNLD$(I) THEN GOTO 25698 ELSE NEXT
  1149. 25682 GOSUB 31060:PRINT X$+A$;:A$="download":IA!=FNTI!+5:GOSUB 60440:GOTO 25505
  1150. 25698 IF FF=4 THEN FOR X=I TO DNLD.SUB:DNLD$(X)=DNLD$(X+1):NEXT:A$=" deleted!":DNLD.SUB=DNLD.SUB-1:GOTO 25682
  1151. 25700 IF FF=2 THEN A$="download":II=I:GOSUB 25850:GOSUB 26030:SWAP DNLD$(II),X$:A$=" changed!":GOTO 25682
  1152. 25730 X$="":GOSUB 25850:IF LEN(HJ$)<1 THEN GOTO 25505 ELSE FOR I=1 TO LEN(M7$):IF MID$(M7$,I,1)=LEFT$(X$,1) THEN GOTO 25735 ELSE NEXT:GOSUB 60380:GOSUB 31060:PRINT X$+" is not on a drive eligible for downloading.";:IA!=FNTI!+5:GOSUB 60440:GOTO 25730
  1153. 25735 IF X$="" THEN GOTO 25220 ELSE DNLD.SUB=DNLD.SUB+1:DNLD$(DNLD.SUB)=X$:GOTO 25505
  1154. 25850 GOSUB 31060:PRINT"Enter "+A$" DOS sub-directory name (CR to end). ";
  1155. 25860 LINE INPUT;HJ$:GOSUB 50654
  1156. 25861 IF LEN(HJ$)<1 THEN RETURN
  1157. 25862 IF LEN(HJ$)=2 AND INSTR(HJ$,":")=2 THEN X$=HJ$:RETURN
  1158. 25863 IF INSTR(HJ$,":\")<>2 THEN GOTO 25850
  1159. 25870 X$=HJ$
  1160. 25871 FOR I=4 TO LEN(X$)
  1161. 25872   Y=INSTR(I,X$,"\")
  1162. 25873   IF Y=0 THEN L1=LEN(X$)-I+1:GOTO 25876
  1163. 25874   IF Y<>0 THEN L1=Y-I+1:GOTO 25876
  1164. 25875 NEXT
  1165. 25876 HJ$=MID$(X$,I,L1)
  1166. 25878 IF LEN(HJ$)>12 THEN GOTO 25850
  1167. 25880 L1=INSTR(HJ$,"."):IF L1=0 THEN IF LEN(HJ$)<9 THEN GOTO 25920 ELSE GOTO 25850
  1168. 25890 IF L1>9 THEN GOTO 25850
  1169. 25900 IF L1<2 THEN GOTO 25850
  1170. 25910 IF LEN(HJ$)-L1>3 THEN GOTO 25850
  1171. 25915 I=0:GOSUB 25920:IF I=0 THEN RETURN ELSE GOTO 25850
  1172. 25920 FOR J=1 TO LEN(HJ$)
  1173. 25930     X=ASC(MID$(HJ$,J,1))
  1174. 25940     IF (X>63 AND X<91) THEN GOTO 26020
  1175. 25950     IF (X>47 AND X<58) THEN GOTO 26020
  1176. 25960     IF (X=33) THEN GOTO 26020
  1177. 25970     IF (X>34 AND X<42) THEN GOTO 26020
  1178. 25980     IF (X>43 AND X<47) THEN GOTO 26020
  1179. 25990     IF (X>96 AND X<124) THEN GOTO 26020
  1180. 26000     IF (X=125) THEN GOTO 26020
  1181. 26010 I=1:RETURN
  1182. 26020 NEXT: RETURN
  1183. 26030 FOR I=1 TO LEN(M7$):IF MID$(M7$,I,1)=MID$(X$,1,1) THEN RETURN
  1184. 26032 NEXT:X$="":RETURN
  1185. 30000 OK=0                      ' <---- check to see if file exists
  1186. 30010 NAME FILE$ AS FILE$       '   OK=0 means file not found
  1187. 30020 OK=-1                     '   OK=1 means file exists
  1188. 30030 RETURN
  1189. 30040 OPEN "R",2,ME$,128        ' <---- read MESSAGES checkpoint record
  1190. 30050 FIELD 2,128 AS RR$
  1191. 30060 GET 2,1
  1192. 30090 IO=VAL(MID$(RR$,1,8))     '  1-  8 = number of last message on system
  1193. 30100 ID=VAL(MID$(RR$,52,5))    ' 52- 56 = first rec. of user file
  1194. 30110 IE=VAL(MID$(RR$,57,5))    ' 57- 61 = next avail. user record
  1195. 30120 IG=VAL(MID$(RR$,62,5))    ' 62- 66 = last rec. of user file
  1196. 30130 IJ=VAL(MID$(RR$,68,7))    ' 68- 74 = first rec. of msgs file
  1197. 30140 II=VAL(MID$(RR$,75,7))    ' 75- 81 = next avail. msgs record
  1198. 30150 IH=VAL(MID$(RR$,82,7))    ' 82- 88 = last rec. of msgs file
  1199. 30152 IM=VAL(MID$(RR$,89,7))    ' 89- 95 = maximum number of messages
  1200. 30155 MC=VAL(MID$(RR$,127,2))   '127-128 = maximum number of "nodes"
  1201. 30160 CLOSE 2
  1202. 30170 RETURN
  1203. 30180 OPEN "R",2,FILE$,128      ' <---- get length of file
  1204. 30190 FIELD 2,128 AS RR$
  1205. 30200 UG=LOF(2)/128
  1206. 30210 CLOSE 2
  1207. 30220 RETURN
  1208. 30230 OPEN "R",2,ME$            ' <---- create new MESSAGES file
  1209. 30240 FIELD 2,128 AS RR$
  1210. 30245 A$="Creating preformatted"
  1211. 30270 LSET RR$=" 1"+SPACE$(124)+STR$(MC)
  1212. 30280 PUT 2,1                   ' write out blank checkpoint record
  1213. 30290 FOR J=2 TO IJ-1
  1214. 30300   GOSUB 31050
  1215. 30310   PUT 2                   ' write out "door" records of new file
  1216. 30320   GOSUB 25030
  1217. 30330 NEXT
  1218. 30370 FOR J=IJ TO IH
  1219. 30380   LSET RR$ = SPACE$(128)
  1220. 30390   PUT 2                   ' write out messages records of new file
  1221. 30400   GOSUB 25030
  1222. 30410 NEXT
  1223. 30420 IH=LOC(2)                 ' point to last available message record
  1224. 30425 CLOSE 2
  1225. 30430 GOSUB 30450
  1226. 30440 RETURN
  1227. 30450 CLOSE 2
  1228. 30455 OPEN "R",2,ME$            ' <---- update MESSAGES checkpoint record
  1229. 30460 FIELD 2,128 AS RR$
  1230. 30470 GET 2,1
  1231. 30490 MID$(RR$,52,46)=SPACE$(46)   'reset all counters before filling
  1232. 30500 MID$(RR$,52,5)=STR$(ID)   ' 52- 56 = first rec. of msgs file
  1233. 30510 MID$(RR$,57,5)=STR$(IE)   ' 57- 61 = next avail. user record
  1234. 30520 MID$(RR$,62,5)=STR$(IG)   ' 62- 66 = last rec. of user file
  1235. 30540 MID$(RR$,68,7)=STR$(IJ)   ' 68- 74 = first rec. of msgs file
  1236. 30550 MID$(RR$,75,7)=STR$(II)   ' 75- 81 = next avail. msgs record
  1237. 30560 MID$(RR$,82,7)=STR$(IH)   ' 82- 88 = last rec. of msgs file
  1238. 30562 MID$(RR$,89,7)=STR$(IM)   ' 89- 95 = maximum number of messages
  1239. 30565 HJ$=STR$(MC):IF MC>9 THEN HJ$=MID$(STR$(MC),2,2)
  1240. 30570 MID$(RR$,127,2)=HJ$       '127-128 = maximum number of "nodes"
  1241. 30580 PUT 2,1
  1242. 30590 CLOSE 2
  1243. 30600 RETURN
  1244. 30610 CLOSE 1
  1245. 30612 CLOSE 2
  1246. 30613 OPEN "R",1,ME$,128        ' <---- adjust size of the MESSAGES file
  1247. 30614 FIELD 1,128 AS R$         ' Open old MESSAGES file
  1248. 30615 A$=ME$:GOSUB 50095
  1249. 30616 OPEN "R",2,A$,128         ' Open new MESSAGES file
  1250. 30620 FIELD 2,128 AS RR$
  1251. 30635 A$="Copying"
  1252. 30640 OE=B1:IF MC<=B1 THEN OE=MC
  1253. 30650 GOSUB 50340
  1254. 30660 FOR J=1 TO OE+1
  1255. 30670   GET 1,J
  1256. 30680   LSET RR$=R$              ' write out existing checkpoint and
  1257. 30690   PUT 2                    ' existing "door" records
  1258. 30700   GOSUB 25030
  1259. 30710 NEXT
  1260. 30720 IF B1<=MC THEN GOTO 30780
  1261. 30730 FOR J = OE+1 TO B1
  1262. 30740   GOSUB 31050
  1263. 30750   PUT 2                    ' write out expansion "door" records
  1264. 30760   GOSUB 25030
  1265. 30770 NEXT
  1266. 30780 MC=B1                      ' set value for maximum number of nodes
  1267. 30820 FOR J=IJ TO II-1
  1268. 30830   GET 1,J
  1269. 30831   IF NOT PURGE THEN GOTO 30840
  1270. 30832   IF MID$(R$,116,1)=CHR$(225) THEN PRINT"Msg #"+LEFT$(R$,5)+" copied...":GOTO 30840
  1271. 30833   IF MID$(R$,116,1)=CHR$(226) THEN PRINT"Msg #"+LEFT$(R$,5)+"          purged...":J=LOC(1)+VAL(MID$(R$,118,6)):GOTO 30830
  1272. 30840   LSET RR$=R$
  1273. 30850   PUT 2                    ' write out existing message records
  1274. 30860   GOSUB 25030
  1275. 30870 NEXT
  1276. 30875 B1=LOC(2)+1                ' get new file's next message record
  1277. 30880 CLOSE 1
  1278. 30900 IF B3!<LOC(2)+1 THEN GOTO 30960
  1279. 30905 IF PURGE THEN II=LOC(2)+1:PURGE=0:A$="Preformatting"
  1280. 30910 FOR J!=II TO B3!
  1281. 30920   LSET RR$ = SPACE$(128)
  1282. 30930   PUT 2                    ' write out expansion message records
  1283. 30940   GOSUB 25030
  1284. 30950 NEXT
  1285. 30960 IJ=1+MC+1:II=B1:IH=LOC(2):CLOSE 2
  1286. 30980 XX$="Delete the old "+ME$+" file? (YES or NO)?":GOSUB 50345:GOSUB 22380:ON AB GOTO 31000,31020,30980,30980
  1287. 31000 A$=ME$:GOSUB 50096:NAME ME$ AS A$
  1288. 31010 GOTO 31030
  1289. 31020 KILL ME$
  1290. 31030 A$=ME$:GOSUB 50095:NAME A$ AS ME$
  1291. 31035 GOSUB 30450
  1292. 31040 RETURN
  1293. 31050 LSET RR$=SPACE$(31)+"-1 0 0 0 0 0 0 0    0 0 0I":RETURN
  1294. 31060 GOSUB 50340:LOCATE 24,5:RETURN
  1295. 50000 OPEN "R",2,UC$            ' <---- create a new USERS file
  1296. 50010 FIELD 2,128 AS U$
  1297. 50015 GOSUB 50340
  1298. 50016 A$="Creating preformatted"
  1299. 50020 FOR J=ID TO IG
  1300. 50030   LSET U$ = SPACE$(128)
  1301. 50040   PUT 2
  1302. 50050   GOSUB 25020
  1303. 50060 NEXT
  1304. 50080 CLOSE 2
  1305. 50090 RETURN
  1306. 50095 IF INSTR(A$,".") THEN A$=MID$(A$,1,INSTR(A$,".")-1)+".BAK":RETURN ELSE A$=A$+".BAK":RETURN
  1307. 50096 IF INSTR(A$,".") THEN A$=MID$(A$,1,INSTR(A$,".")-1)+".OLD":RETURN ELSE A$=A$+".OLD":RETURN
  1308. 50100 OPEN "R",2,ME$
  1309. 50110 FIELD 2,128 AS RR$
  1310. 50114 IF F=1 THEN IO=1
  1311. 50115 GOSUB 50340
  1312. 50120 LSET RR$=" 1      "+SPACE$(118)+STR$(MC)
  1313. 50130 PUT 2,1                       ' write out first record of new file
  1314. 50140 FOR J!=2 TO MC+1
  1315. 50150   GOSUB 31050
  1316. 50160   PUT 2                       ' write out "door" records of new file
  1317. 50170   GOSUB 25030
  1318. 50180 NEXT
  1319. 50190 IJ=LOC(2)+1                ' point to first message record
  1320. 50200 II=IJ                   ' point to next available message record
  1321. 50210 IF MC+1=MQ! THEN GOTO 50270
  1322. 50220 FOR J!=MC+2 TO MQ!
  1323. 50230   LSET RR$ = SPACE$(128)
  1324. 50240   PUT 2                       ' write out messages records of new file
  1325. 50250   GOSUB 25030
  1326. 50260 NEXT
  1327. 50270 IH=LOC(2)                  ' point to last available message record
  1328. 50280 GOSUB 30040
  1329. 50290 RETURN
  1330. 50340 I!=FRE(C$):LOCATE 24,1:PRINT STRING$(79,32);:RETURN
  1331. 50345 GOSUB 50340:LOCATE 24,5:PRINT XX$;:RETURN
  1332. 50350 F$=UC$
  1333. 50360 IF INSTR(UC$,".") THEN F$=MID$(UC$,1,INSTR(UC$,".")-1)
  1334. 50370 RETURN
  1335. 50480 UB=8
  1336. 50490 NAME UC$ AS UC$
  1337. 50500 OPEN "R",1,UC$
  1338. 50510 IF UB<LOF(1)/128 THEN UB=LOF(1)/128
  1339. 50520 UG=LOF(1)/128:CLOSE 1:RETURN
  1340. 50530 MQ!=(5*MP)+1+MC
  1341. 50540 NAME ME$ AS ME$
  1342. 50550 OPEN "R",1,ME$
  1343. 50560 IF MQ!<LOF(1)/128 THEN MQ!=LOF(1)/128
  1344. 50570 CLOSE 1:RETURN
  1345. 50580 OLD=LOC(1):GET 1,I + 1 
  1346. 50590 IF (MID$(R$,116,1)=CHR$(225) OR MID$(R$,116,1)=CHR$(226)) AND (MID$(R$,61,1)=":" AND MID$(R$,64,1)=":" AND MID$(R$,70,1)="-" AND MID$(R$,73,1)="-") THEN RETURN
  1347. 50600 PRINT "Message chain broken at record number "+STR$(OLD)
  1348. 50610 PRINT "Message chain repair in progress!
  1349. 50620 FOR IQ=OLD+1 TO II-1
  1350. 50630   GET 1,IQ
  1351. 50640   IF (MID$(R$,116,1)=CHR$(225) OR MID$(R$,116,1)=CHR$(226)) AND (MID$(R$,61,1)=":" AND MID$(R$,64,1)=":" AND MID$(R$,70,1)="-" AND MID$(R$,73,1)="-") THEN GOTO 50660
  1352. 50645 NEXT
  1353. 50650 GOTO 23730
  1354. 50654 ' Convert Lower Case to Upper Case -------
  1355. 50655 FOR Z=1 TO LEN(HJ$):MID$(HJ$,Z,1)=CHR$(ASC(MID$(HJ$,Z,1))+32*(ASC(MID$(HJ$,Z,1))>96)):NEXT:RETURN
  1356. 50660 GET 1,OLD
  1357. 50670 MID$(R$,118,6)=STR$(IQ-OLD)
  1358. 50680 PUT 1,OLD
  1359. 50690 PRINT "Message chain repaired.
  1360. 50700 I=IQ
  1361. 50710 RETURN
  1362. 50720   JX=30:WHILE MID$(O.N$,JX,1)=" ":JX=JX-1:WEND:X$=MID$(O.N$,1,JX)
  1363. 50721   UIX#=FNHSH(X$):Q=FNHSH2(X$):NSR=1:RO=CSRLIN:CO=POS(0)
  1364. 50722   GET 2,UIX#
  1365. 50724   IF MID$(N$,1,7)="       " THEN 50730
  1366. 50726   UIX#=UIX#+Q:IF UIX#>UB THEN UIX#=UIX#-UB
  1367. 50728   NSR=NSR+1:LOCATE RO,CO:PRINT "searching";UIX#;:GOTO 50722
  1368. 50730 LSET N$=O.N$:LSET PW$=OG$:LSET SL$=OH$:LSET OP$=OI$:LSET CS$=OJ$:LSET MA$=OL$:LSET TD$=OM$:LSET LND$=OO$:LSET UDL$=OQ$:LSET UUL$=OS$:LSET ET$=OT$
  1369. 50820   PUT 2,UIX#:IE=IE+1:LOCATE RO,CO:PRINT "to pos#";UIX#;" /";NSR;" srch(s)"
  1370. 50830   RETURN
  1371. 50840 FOR J=A!+1 TO UB
  1372. 50850   LSET N$   = SPACE$(31):LSET PW$  = SPACE$(15):LSET SL$  = MKI$(-32000):LSET OP$  = SPACE$(14):LSET CS$  = SPACE$(24):LSET MA$  = SPACE$(19)
  1373. 50910   LSET TD$  = SPACE$(14):LSET LND$ = SPACE$(3):LSET UDL$ = SPACE$(2):LSET UUL$ = SPACE$(2):LSET ET$  = SPACE$(2)
  1374. 50970   PUT 2:GOSUB 25020
  1375. 50980 NEXT:RETURN
  1376. 60000 REM
  1377. 60010 REM * HANDLE ERROR CONDITIONS *
  1378. 60020 ' PRINT ERR,ERL:STOP
  1379. 60030 IF ERR=53 AND ERL=30010 THEN RESUME 30030
  1380. 60031 IF ERR=58 AND ERL=30010 THEN RESUME 30020
  1381. 60040 IF ERR=62 AND (ERL=11600 OR ERL=11620 OR ERL=11640 OR ERL=11705 OR ERL=11706) THEN PRINT CA$+" from a version earlier than CPC14.1 on default drive.":PRINT "Please delete and rerun CONFIG.":RESUME 60340
  1382. 60140 IF ERL=31000 AND ERR=58 THEN KILL A$:RESUME 31000
  1383. 60150 IF ERL=31030 AND ERR=58 THEN KILL A$:RESUME 31030
  1384. 60170 IF ERL=22120 AND ERR=6 THEN RESUME 22100
  1385. 60270 IF ERL=24750 AND ERR=58 THEN KILL A$:RESUME 24750
  1386. 60278 IF ERL=50490 AND ERR=58 THEN RESUME 50500
  1387. 60280 IF ERL=50540 AND ERR=58 THEN RESUME 50550
  1388. 60282 IF ERL=50490 OR ERL=50540 THEN RESUME 15230
  1389. 60285 IF ERR=61 THEN PRINT "ERROR - IBM DOS DISKETTE FULL ":RESUME 60340
  1390. 60290 IF ERR=67 THEN PRINT "ERROR - IBM DOS DIRECTORY FULL":RESUME 60340
  1391. 60300 IF ERR=70 THEN PRINT "DISKETTE IN DRIVE IS WRITE PROTECTED":RESUME 60340
  1392. 60310 IF ERR=71 THEN PRINT "DRIVE DOOR OPEN OR MISSING DISKETTE":RESUME 60340
  1393. 60320 IF ERR=72 THEN PRINT "ERROR - UNFORMATTED IBM DOS DISKETTE IN DRIVE":RESUME 60340
  1394. 60330 PRINT "+++ Error";ERR;" in line ";ERL "occurred at " TIME$ " on " DATE$
  1395. 60340 IF F=1 THEN GOSUB 10540:IA!=FNTI!+5
  1396. 60350 GOSUB 60440
  1397. 60360 SYSTEM
  1398. 60370 PRINT "Unable to create preformatted "+UC$+" file.":GOTO 60340
  1399. 60380 FOR I=1 TO 3:SOUND 1000*I,1:NEXT:RETURN
  1400. 60440 ' wait routine
  1401. 60450 IF FNTI!<IA! THEN GOTO 60450
  1402. 60460 RETURN
  1403.